Function at 0x1005dd70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov dword [ebp - 0x28], edx
mov edx, ecx
mov ecx, dword [ebp + 0x1c]
mov esi, dword [edx + 8]
test esi, esi
mov dword [ebp - 0x18], edx
je 0x1005e1ee
mov ebx, dword [ebp + 0x10]
mov edi, dword [edx + 0x28]
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x34], eax
dec eax
mov dword [ebp - 0x20], eax
mov dword [edx + 0x38], eax
test ecx, ecx
js 0x1005e0b1
mov dword [ebp - 0x1c], edi
mov ecx, dword [ebp + 0x14]
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x1005de22
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov eax, dword [ecx + ebx*4]
test ax, ax
js 0x1005ddd9
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x1c]
and edx, 0x20
jne 0x1005e3e3
cwde
add eax, dword [ebp - 0x10]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1005e11a
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x32
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
inc ebx
mov eax, dword [ebp + 0x10]
mov edi, dword [eax + 0x14]
cmp ebx, edi
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
jl 0x1005ddc0
mov ebx, dword [ebp - 0x1c]
dec ebx
cmp dword [ebp + 0x20], 0
jne 0x1005dfd7
cmp dword [ebp + 0xc], 0
jne 0x1005e20e
mov al, byte [edx + 0x13]
test al, al
je 0x1005e0a2
dec al
mov byte [edx + 0x13], al
movzx eax, al
mov eax, dword [edx + eax*4 + 0xa0]
mov dword [ebp - 0x10], eax
mov edi, dword [ebp + 8]
mov eax, dword [ecx]
test ax, ax
js 0x1005de72
mov ecx, dword [ebp + 0x10]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x1c]
and edx, 0x20
jne 0x1005e429
cwde
mov ecx, dword [ebp + 0x18]
add eax, ecx
inc eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1005e14d
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x51
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1005e167
lea eax, [ecx + 1]
mov dword [esi + 0x6c], eax
mov eax, dword [esi + 0x68]
mov edx, ecx
mov dword [ebp - 0x1c], ecx
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4], 0xd
mov edx, dword [ebp - 0x10]
mov dword [eax + ecx*4 + 4], edx
xor edx, edx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], edx
cmp dword [ebp + 0x1c], 1
mov ecx, dword [ebp - 0x18]
jne 0x1005defa
mov eax, dword [ebp + 0x10]
cmp dword [eax], edi
je 0x1005e46c
mov edx, ebx
push 0x70
push edi
push dword [ebp - 0x28]
call fcn.10040c10
add esp, 0xc
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1005e185
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x1f
mov dword [ecx + eax*4 + 4], ebx
xor edx, edx
mov dword [ecx + eax*4 + 8], edx
mov edi, dword [ebp - 0x10]
mov dword [ecx + eax*4 + 0xc], edi
mov dword [ecx + eax*4 + 0x10], edx
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1005e19f
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 9
xor edx, edx
mov dword [ecx + eax*4 + 4], edx
mov edi, dword [ebp - 0x20]
mov dword [ecx + eax*4 + 8], edi
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
mov edi, ebx
mov edx, dword [esi]
mov ecx, dword [esi + 0x6c]
mov eax, 0x101f2320
cmp byte [edx + 0x57], 0
mov edx, 0x101f2320
jne 0x1005df95
lea edx, [ecx + ecx*4]
mov ebx, dword [esi + 0x68]
lea edx, [ebx + edx*4]
add edx, 0xffffffd8
mov dword [edx + 8], ecx
mov edx, dword [esi]
mov ecx, dword [esi + 0x6c]
cmp byte [edx + 0x57], 0
mov ebx, edi
jne 0x1005dfb1
mov eax, dword [ebp - 0x1c]
lea eax, [eax + eax*4]
shl eax, 2
add eax, dword [esi + 0x68]
mov dword [eax + 8], ecx
cmp dword [ebp - 0x10], 0
mov edx, dword [ebp - 0x18]
je 0x1005dfd7
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x1005dfd7
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x10]
mov dword [edx + eax*4 + 0xa0], ecx
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x18]
test al, al
mov edi, dword [ebp - 0x34]
jne 0x1005e018
mov eax, dword [edx]
test byte [eax + 0x22], 8
jne 0x1005dffc
cmp dword [edx + 0x78], 0
jne 0x1005dffc
cmp byte [edx + 0x14], 0
je 0x1005e0f8
cmp dword [ebp + 0x1c], 0
jle 0x1005e0f1
mov eax, dword [edx + 0x78]
test eax, eax
cmove eax, edx
mov byte [eax + 0x15], 1
mov eax, dword [ebp + 0x10]
mov al, byte [eax + 0x18]
movzx eax, al
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1005e1ba
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x9e
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp + 0x1c]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov ecx, dword [esi + 0xc]
neg edi
mov eax, dword [ecx + 0x38]
add eax, dword [ecx + 0x3c]
js 0x1005e3d3
mov eax, dword [esi + 0x6c]
mov ecx, dword [ecx + 0x40]
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 0x6c]
cmp dword [esi + 0x70], eax
jle 0x1005e134
lea ecx, [eax + 1]
mov dword [esi + 0x6c], ecx
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov dword [ecx + eax*4], 0x7a
mov dword [ecx + eax*4 + 4], ebx
xor edx, edx
mov dword [ecx + eax*4 + 8], edx
mov dword [ecx + eax*4 + 0xc], edx
mov dword [ecx + eax*4 + 0x10], edx
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edx + 0x2c]
inc eax
mov dword [ebp - 0x10], eax
mov dword [edx + 0x2c], eax
jmp 0x1005de57
movzx eax, byte [ebx + 0x18]
mov ecx, dword [esi + 0x6c]
cmp dword [esi + 0x70], ecx
jle 0x1005e1d4
lea edx, [ecx + 1]
mov dword [esi + 0x6c], edx
mov edx, dword [esi + 0x68]
lea ecx, [ecx + ecx*4]
mov dword [edx + ecx*4], 0x31
mov dword [edx + ecx*4 + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [edx + ecx*4 + 8], eax
xor eax, eax
mov dword [edx + ecx*4 + 0xc], eax
mov dword [edx + ecx*4 + 0x10], eax
mov edx, dword [ebp - 0x18]
jmp 0x1005ddaa
xor eax, eax
jmp 0x1005e018
sub esp, 0x10
movaps xmm0, xmmword [0x101af3b0]
movups xmmword [esp], xmm0
mov ecx, edx
mov edx, 0x313
call fcn.100527c0
add esp, 0x10
jmp 0x1005e04f
mov ecx, esi
mov edx, 0x32
push 0
push dword [ebp - 0x20]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1005de11
xor eax, eax
mov ecx, esi
mov edx, 0x7a
push eax
push eax
push ebx
call fcn.10016c40
add esp, 0x34
jmp 0x1005e09d
mov ecx, esi
mov edx, 0x51
push 0
push dword [ebp - 0x10]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1005dead
xor eax, eax
mov ecx, esi
mov edx, 0xd
push eax
push eax
push dword [ebp - 0x10]
call fcn.10016c40
add esp, 0xc
mov dword [ebp - 0x1c], eax
jmp 0x1005dee6
mov ecx, esi
mov edx, 0x1f
push dword [ebp - 0x10]
push 0
push ebx
call fcn.10016c40
add esp, 0xc
jmp 0x1005df3e
xor eax, eax
mov ecx, esi
mov edx, 9
push eax
push dword [ebp - 0x20]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1005df72
mov ecx, esi
mov edx, 0x9e
push 0
push dword [ebp + 0x1c]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1005e04f
mov ecx, esi
mov edx, 0x31
push 0
push dword [ebp - 0x20]
push eax
call fcn.10016c40
add esp, 0xc
jmp 0x1005e0e9
cmp dword [edx + 0x78], 0
je 0x1005e4c1
mov esi, dword [ebp - 0x18]
mov ecx, esi
call fcn.1002f500
mov edx, esi
mov esi, eax
mov ecx, dword [ebp + 0x1c]
jmp 0x1005dd8f
mov ecx, edx
mov edx, edi
call fcn.10052fb0
mov dword [ebp - 0x14], eax
mov ecx, esi
mov edx, 0x70
push dword [ebp - 0x28]
mov eax, dword [ebp + 0xc]
push dword [eax + 0x2c]
mov dword [ebp - 0x1c], ebx
push ebx
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 0xc]
call fcn.1016f710
test edi, edi
jle 0x1005e285
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x28], eax
xor ebx, ebx
mov eax, dword [ebp - 0x14]
add eax, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0x14]
movsx edx, word [eax + ebx*4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
call fcn.10157970
cwde
add eax, dword [ebp - 0x28]
mov ecx, esi
mov edx, 0x50
push 0
push dword [ebp - 0x10]
push eax
call fcn.1002fb80
add esp, 0xc
inc ebx
cmp edi, ebx
jne 0x1005e24e
cmp dword [ebp + 0x1c], 1
jne 0x1005e33b
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
cmp dword [eax], ecx
jne 0x1005e33b
test edi, edi
jle 0x1005e325
mov eax, dword [esi + 0x6c]
add eax, edi
inc eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x18]
inc eax
mov dword [ebp - 0x10], eax
xor ebx, ebx
mov eax, dword [ebp + 0x14]
movsx edx, word [eax + ebx*4]
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
call fcn.10157970
cwde
add eax, dword [ebp - 0x10]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 0xc]
movsx edx, word [eax + ebx*2]
mov dword [ebp - 0x2c], edx
call fcn.10157970
cwde
add eax, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x2c]
cmp dx, word [ecx + 0x20]
cmove eax, dword [ebp + 0x18]
mov ecx, esi
mov edx, 0x34
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x28]
call fcn.1002fb80
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x1005e320
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [ecx + eax*4 - 0x12], 0x10
inc ebx
cmp edi, ebx
jne 0x1005e2b7
xor eax, eax
mov ecx, esi
mov edx, 9
push eax
push dword [ebp - 0x20]
push eax
call fcn.1002fb80
add esp, 0xc
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
mov edx, dword [ebp + 0xc]
call fcn.10042250
mov dword [ebp - 0x10], eax
mov ecx, esi
mov edx, 0x60
push 0
push edi
mov ebx, dword [ebp - 0x14]
push ebx
call fcn.1002fb80
add esp, 0xc
mov ecx, esi
mov edx, eax
push edi
push dword [ebp - 0x10]
call fcn.1003a120
add esp, 8
mov ecx, esi
mov edx, 0x1d
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
call fcn.1002fb80
add esp, 0xc
mov ecx, dword [esi]
cmp byte [ecx + 0x57], 0
jne 0x1005e39e
mov ecx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 + 1], 0xfd
mov dword [ecx + eax*4 + 0x10], edi
cmp edi, 1
jne 0x1005e4a4
cmp dword [ebp - 0x14], 0
mov ebx, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
je 0x1005dfd7
movzx eax, byte [edx + 0x13]
cmp eax, 7
ja 0x1005dfd7
mov ecx, eax
inc cl
mov byte [edx + 0x13], cl
mov ecx, dword [ebp - 0x14]
jmp 0x1005dfd0
mov edx, esi
push edi
call fcn.10032440
add esp, 4
jmp 0x1005e069
movsx edx, ax
mov dword [ebp - 0x24], edx
mov edx, dword [ecx + 4]
mov dword [ebp - 0x30], edx
test ax, ax
je 0x1005e4dc
mov edx, dword [ebp - 0x30]
add edx, 0xe
mov dword [ebp - 0x14], 0
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x2c], edi
movzx edi, word [edx]
bt edi, 5
mov edi, dword [ebp - 0x14]
sbb di, 0xffff
mov dword [ebp - 0x14], edi
add edx, 0x10
dec dword [ebp - 0x2c]
jne 0x1005e40b
jmp 0x1005e4e3
mov dword [ebp - 0x1c], ebx
movsx ebx, ax
mov edx, dword [ecx + 4]
mov dword [ebp - 0x24], edx
test ax, ax
je 0x1005e507
mov edx, dword [ebp - 0x24]
add edx, 0xe
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x2c], ebx
movzx edi, word [edx]
bt edi, 5
mov edi, dword [ebp - 0x14]
sbb di, 0xffff
mov dword [ebp - 0x14], edi
add edx, 0x10
dec dword [ebp - 0x2c]
jne 0x1005e44e
jmp 0x1005e50e
mov ecx, esi
mov edx, 0x35
push dword [ebp - 0x10]
push dword [ebp - 0x20]
push dword [ebp + 0x18]
call fcn.1002fb80
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov eax, dword [esi + 0x6c]
test eax, eax
jle 0x1005defa
mov edx, dword [esi + 0x68]
lea eax, [eax + eax*4]
mov word [edx + eax*4 - 0x12], 0x90
jmp 0x1005defa
mov edx, dword [ebp - 0x18]
cmp dword [edx + 0x1c], edi
mov ebx, dword [ebp - 0x1c]
jge 0x1005dfd7
mov dword [edx + 0x1c], edi
mov eax, dword [ebp - 0x14]
mov dword [edx + 0x20], eax
jmp 0x1005dfd7
mov eax, dword [ebp - 0x18]
mov eax, dword [eax]
test byte [eax + 0x50], 8
jne 0x1005e1f8
mov eax, dword [ebp - 0x18]
mov byte [eax + 0x17], 1
jmp 0x1005e1f8
mov dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x24]
shl edx, 4
mov edi, dword [ebp - 0x30]
test byte [edi + edx + 0xe], 0x20
jne 0x1005e4fb
mov eax, dword [ebp - 0x14]
jmp 0x1005ddd9
sub eax, dword [ebp - 0x14]
add ax, word [ecx + 0x24]
jmp 0x1005ddd9
mov dword [ebp - 0x14], 0
shl ebx, 4
mov edx, dword [ebp - 0x24]
test byte [edx + ebx + 0xe], 0x20
jne 0x1005e520
mov eax, dword [ebp - 0x14]
jmp 0x1005e527
sub eax, dword [ebp - 0x14]
add ax, word [ecx + 0x24]
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp + 8]
jmp 0x1005de72