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

Disassembly:
sub esp, 0x30
push ebx
mov ebx, dword [esp + 0x38]
push ebp
push esi
mov esi, dword [esp + 0x54]
push edi
mov edi, dword [ebx + 8]
mov dword [esp + 0x30], edi
mov al, byte [esi]
mov byte [esp + 0x13], al
movzx eax, al
mov dword [esp + 0x34], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x100464f0
movzx eax, byte [eax + 1]
jmp 0x100464f2
xor eax, eax
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x28], eax
test ebp, ebp
je 0x1004650a
cmp dword [ebp], 0
jne 0x10046522
xor ebp, ebp
mov dword [esp + 0x50], ebp
test eax, eax
jne 0x10046522
mov ecx, dword [esp + 0x48]
push dword [esp + 0x5c]
push dword [ecx + 0xc]
push edi
call fcn.100233d0
add esp, 0xc
mov eax, dword [esp + 0x48]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], edx
test eax, eax
jne 0x1004655c
test ebp, ebp
je 0x10046550
mov eax, dword [ebp]
test byte [ebp + 0x20], 1
mov eax, dword [eax]
lea ecx, [eax + 1]
cmovne ecx, eax
add dword [ebx + 0x2c], ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [ebx + 0x2c]
inc eax
mov dword [esi + 0xc], eax
add dword [ebx + 0x2c], edx
jmp 0x1004656b
mov ecx, dword [ebx + 0x2c]
add eax, edx
cmp eax, ecx
jle 0x1004656b
lea eax, [ecx + edx]
mov dword [ebx + 0x2c], eax
cmp dword [esp + 0x4c], 0
mov dword [esi + 0x10], edx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
jl 0x100465e8
xor ebp, ebp
test edx, edx
jle 0x1004671a
mov ebx, dword [esp + 0x4c]
nop
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x100465af
lea eax, [esi + ebp]
push eax
push ebp
push ebx
push 0x5e
push edi
call fcn.10031c40
mov edx, dword [esp + 0x28]
add esp, 0x14
jmp 0x100465da
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x5e
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], ebp
lea ecx, [eax + ecx*4]
lea eax, [esi + ebp]
mov dword [ecx + 0x10], 0
mov dword [ecx + 0xc], eax
inc ebp
cmp ebp, edx
jl 0x10046590
mov ebx, dword [esp + 0x44]
jmp 0x1004671a
mov cl, byte [esp + 0x13]
cmp cl, 3
je 0x1004671a
cmp cl, 0xa
je 0x10046608
cmp cl, 9
je 0x10046608
cmp cl, 0xd
je 0x10046608
xor al, al
jmp 0x1004660a
mov al, 1
mov byte [esp + 0x4c], al
test ebp, ebp
je 0x100466d5
cmp dword [esp + 0x28], 0
jne 0x100466d5
cmp cl, 0xc
je 0x100466d5
cmp cl, 0xe
je 0x100466d5
mov ecx, dword [ebp]
or al, 0xc
mov byte [esp + 0x4c], al
mov eax, dword [ebp + 4]
mov dword [esp + 0x2c], eax
cmp eax, dword [ecx]
jge 0x1004668b
mov edi, dword [esp + 0x48]
mov ebx, eax
lea esi, [ebx + ebx*4]
shl esi, 2
movzx eax, word [ecx + esi + 0x18]
test eax, eax
je 0x10046670
lea ecx, [eax + eax*4]
mov dx, bx
sub dx, word [ebp + 4]
mov eax, dword [edi + 0x1c]
inc dx
mov word [eax + ecx*4 + 4], dx
mov ecx, dword [ebp]
inc ebx
add esi, 0x14
cmp ebx, dword [ecx]
jl 0x10046653
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
test eax, eax
jle 0x100466d5
mov esi, dword [esp + 0x24]
lea ebx, [ecx + 0x18]
mov ebp, eax
movzx ecx, word [ebx]
lea ebx, [ebx + 0x14]
mov eax, edx
test cx, cx
lea edx, [eax - 1]
cmove edx, eax
xor eax, eax
test cx, cx
cmove eax, esi
mov esi, eax
sub ebp, 1
jne 0x100466a1
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x50]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x48]
mov al, byte [esp + 0x4c]
mov dword [esp + 0x38], esi
mov byte [esp + 0x3c], al
cmp dword [ecx + 8], 0
je 0x10046707
test al, 8
je 0x10046707
cmp dword [esp + 0x1c], 0
jle 0x10046707
lea eax, [esp + 0x38]
mov dword [esp + 0x24], 0
mov dword [ebp + 0x24], eax
jmp 0x1004671e
push dword [esp + 0x4c]
push 0
push esi
push dword [ecx + 0x1c]
push ebx
call fcn.10056ce0
add esp, 0x14
mov ecx, dword [esp + 0x48]
cmp dword [esp + 0x28], 0
je 0x10046770
push dword [esp + 0x20]
mov ebp, dword [esp + 0x58]
push dword [ecx + 0x1c]
push dword [esp + 0x64]
movzx esi, byte [ebp + 1]
push dword [ebp + 4]
push esi
push ebx
call fcn.100228b0
push dword [ebp + 8]
push eax
push esi
push ebx
call fcn.1002bf40
mov eax, dword [esp + 0x78]
add esp, 0x28
test eax, eax
jne 0x10046789
mov eax, dword [esp + 0x48]
push dword [esp + 0x5c]
push dword [eax + 0xc]
push edi
call fcn.100233d0
mov esi, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x34]
dec ecx
cmp ecx, 0xe
ja case.0x10046782.4
jmp dword [ecx*4 + 0x10046e1c]
mov esi, dword [esp + 0x20]
jmp 0x10046774
mov al, byte [ebx + 0x13]
test al, al
jne 0x1004679e
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x100467ad
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x9c]
mov ebp, dword [esp + 0x14]
push eax
push ebp
push esi
push 0x61
push edi
mov dword [esp + 0x6c], eax
call fcn.1007aa20
push ebp
push esi
mov esi, dword [esp + 0x74]
push esi
push dword [esp + 0x38]
push 0x8a
push edi
call fcn.1007ab00
add esp, 0x2c
test esi, esi
je case.0x10046782.4
mov al, byte [ebx + 0x13]
cmp al, 8
jae case.0x10046782.4
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], esi
inc byte [ebx + 0x13]
jmp case.0x10046782.4
mov ebp, dword [esp + 0x14]
push ebp
push esi
push dword [esp + 0x20]
push 0x8c
push edi
call fcn.1007aa20
add esp, 0x14
jmp case.0x10046782.4
mov eax, dword [esp + 0x1c]
inc eax
push eax
push ebx
call fcn.10061100
mov ecx, dword [edi + 0x6c]
mov ebp, eax
mov eax, dword [esp + 0x24]
add esp, 8
add eax, ebp
mov dword [esp + 0x4c], ebp
cmp dword [edi + 0x70], ecx
jg 0x10046858
mov ebp, dword [esp + 0x14]
push eax
push ebp
push esi
push 0x61
push edi
call fcn.10031c40
mov edx, ebp
add esp, 0x14
mov ebp, dword [esp + 0x4c]
jmp 0x1004688d
mov edx, dword [esp + 0x14]
lea eax, [ecx + 1]
mov ebx, dword [esp + 0x44]
lea ecx, [ecx + ecx*4]
mov dword [edi + 0x6c], eax
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x1c]
add esi, ebp
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], esi
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x58]
mov esi, dword [ecx + 0x14]
test esi, esi
je 0x100468f1
mov eax, dword [edi]
cmp byte [eax + 0x57], 0
je 0x100468b2
cmp edx, 0xfffffff5
je 0x100468f1
push esi
push edx
push eax
call fcn.1002f0a0
add esp, 0xc
jmp 0x100468f1
mov eax, dword [edi + 0x6c]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 0x68]
lea eax, [eax + ecx*4]
add eax, 0xffffffec
test edx, edx
jns 0x100468e5
cmp byte [eax + 1], 0
jne 0x100468e5
mov dword [eax + 0x10], esi
cmp edx, 0xfffffffd
jne 0x100468d8
mov byte [eax + 1], dl
jmp 0x100468f1
mov byte [eax + 1], dl
cmp edx, 0xfffffff5
jne 0x100468f1
inc dword [esi + 0xc]
jmp 0x100468f1
push edx
push esi
push eax
push edi
call fcn.10096b60
add esp, 0x10
cmp byte [esp + 0x13], 5
jne 0x1004692d
mov eax, dword [edi + 0x6c]
mov esi, dword [esp + 0x18]
add eax, 4
push 0
push ebp
push eax
inc esi
push esi
push 0x1d
push edi
call fcn.1007ab00
mov ebp, dword [esp + 0x2c]
push ebp
push dword [esp + 0x3c]
mov ebp, dword [esp + 0x6c]
push ebp
push esi
push 0x8a
push edi
call fcn.1007ab00
add esp, 0x30
mov esi, dword [esp + 0x50]
test esi, esi
je 0x10046957
mov ecx, dword [esp + 0x1c]
push ecx
push 1
push dword [esp + 0x2c]
lea eax, [ecx + ebp]
push eax
push dword [esp + 0x58]
push esi
push ebx
call fcn.10040290
add esp, 0x1c
jmp 0x100469dd
mov al, byte [ebx + 0x13]
test al, al
jne 0x10046966
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x10046975
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x9c]
push eax
push dword [esp + 0x1c]
mov dword [esp + 0x58], eax
push 0x7f
push edi
call fcn.1007a9c0
push dword [esp + 0x60]
push dword [esp + 0x60]
push dword [esp + 0x30]
push 0x80
push edi
call fcn.1007aa20
mov eax, dword [edi + 0x6c]
add esp, 0x24
test eax, eax
jle 0x100469b7
lea ecx, [eax + eax*4]
mov edx, 8
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov edx, dword [esp + 0x50]
lea ecx, [ebx + 0x13]
mov ebp, dword [esp + 0x4c]
test edx, edx
je 0x100469e0
mov al, byte [ebx + 0x13]
lea ecx, [ebx + 0x13]
cmp al, 8
jae 0x100469e0
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], edx
inc byte [ebx + 0x13]
lea ecx, [ebx + 0x13]
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, 1
jne 0x10046a0d
test ebp, ebp
je 0x10046db4
mov al, byte [ecx]
cmp al, 8
jae 0x10046db4
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], ebp
inc byte [ecx]
jmp 0x10046db4
cmp eax, dword [ebx + 0x1c]
jle 0x10046db4
mov dword [ebx + 0x1c], eax
mov dword [ebx + 0x20], ebp
jmp 0x10046db4
test eax, eax
jne 0x10046b08
mov ecx, dword [esp + 0x58]
push ebx
mov ebp, dword [ecx + 8]
mov dword [esp + 0x54], ebp
call fcn.10061160
push dword [esp + 0x64]
mov ebx, eax
push esi
push 0x32
push edi
call fcn.1007a9c0
mov ecx, ebp
mov ebp, dword [esp + 0x28]
shr ecx, 0x1f
push ebx
sub ebp, ecx
push ebp
lea eax, [ecx + esi]
push eax
push 0x61
push edi
call fcn.1007aa20
mov eax, dword [esp + 0x78]
add esp, 0x28
test eax, eax
jns 0x10046a86
push esi
push ebx
push dword [esp + 0x20]
push 0x80
push edi
call fcn.1007aa20
add esp, 0x14
jmp 0x10046db8
push eax
push esi
push ebx
push dword [esp + 0x24]
push 0x8a
push edi
call fcn.1007ab00
add esp, 0x18
jmp 0x10046db8
test eax, eax
jne 0x10046b08
push ebx
call fcn.10061160
mov ecx, dword [esp + 0x5c]
mov esi, eax
mov ebp, dword [esp + 0x18]
push ebp
push dword [ecx + 0x14]
push esi
push ebp
push dword [esp + 0x34]
push 0x61
push edi
call fcn.1007aa80
push ebp
push dword [esp + 0x44]
push esi
push dword [esp + 0x44]
push 0x8a
push edi
call fcn.1007ab00
push esi
push ebx
call fcn.1006f5d0
add esp, 0x40
jmp 0x10046db8
push dword [esp + 0x18]
push 1
push 0x47
push edi
call fcn.1007a9c0
add esp, 0x10
jmp case.0x10046782.4
test eax, eax
je 0x10046db8
push dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x4c]
push ebp
push dword [esp + 0x2c]
push esi
push ecx
push eax
push ebx
call fcn.10040290
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
test eax, eax
jne 0x10046b08
cmp byte [esp + 0x13], 0xd
jne 0x10046b4f
mov ecx, dword [esp + 0x58]
push dword [ecx + 4]
push 0xc
push edi
call fcn.1007a960
add esp, 0xc
jmp 0x10046db8
mov ebp, dword [esp + 0x14]
push ebp
push esi
push 0x54
push edi
call fcn.1007a9c0
add esp, 0x10
jmp 0x10046db8
mov ecx, dword [esp + 0x58]
xor eax, eax
mov dword [esp + 0x54], eax
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x34], eax
mov ebp, dword [eax]
mov al, byte [ebx + 0x13]
mov dword [esp + 0x28], ebp
test al, al
jne 0x10046b8b
inc dword [ebx + 0x2c]
mov eax, dword [ebx + 0x2c]
jmp 0x10046b9a
dec al
mov byte [ebx + 0x13], al
movzx eax, al
mov eax, dword [ebx + eax*4 + 0x9c]
mov dword [esp + 0x58], eax
lea eax, [ebp + 2]
push eax
push ebx
mov dword [esp + 0x24], eax
call fcn.10061100
mov ecx, dword [esp + 0x20]
add esp, 8
mov dword [esp + 0x24], eax
inc ecx
add eax, ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
inc eax
cmp byte [esp + 0x13], 6
jne 0x10046c26
push ebp
push esi
push 0
push ecx
push 0x1d
push edi
call fcn.1007ab00
mov ecx, dword [esp + 0x64]
inc ecx
mov dword [esp + 0x6c], eax
push ecx
push ebp
push esi
push 0x61
push edi
call fcn.1007aa20
mov eax, dword [esp + 0x78]
inc eax
push eax
mov eax, dword [esp + 0x48]
inc eax
push eax
push 0x8a
push edi
call fcn.1007a9c0
mov eax, dword [edi + 0x6c]
add esp, 0x3c
test eax, eax
jle 0x10046c34
lea ecx, [eax + eax*4]
mov edx, 0x10
mov eax, dword [edi + 0x68]
mov word [eax + ecx*4 - 0x12], dx
mov eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
jmp 0x10046c34
push eax
push ebp
push esi
push 0x61
push edi
call fcn.1007aa20
add esp, 0x14
cmp dword [esp + 0x28], 0
jle 0x10046ca5
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x24]
add ebx, 0x18
movzx eax, word [ebx]
lea edx, [esi - 1]
mov ecx, dword [edi + 0x6c]
add edx, eax
cmp dword [edi + 0x70], ecx
jg 0x10046c67
push 0
push ebp
push edx
push 0x51
push edi
call fcn.10031c40
add esp, 0x14
jmp 0x10046c96
mov esi, dword [esp + 0x20]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x51
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
inc ebp
add ebx, 0x14
sub dword [esp + 0x28], 1
jne 0x10046c46
mov ebx, dword [esp + 0x44]
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10046cc4
push 0
push dword [esp + 0x50]
push dword [esp + 0x20]
push 0x7e
push edi
call fcn.10031c40
add esp, 0x14
jmp 0x10046cf7
mov edx, dword [esp + 0x18]
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x4c]
mov dword [eax + ecx*4], 0x7e
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x6c]
mov edx, dword [esp + 0x58]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
cmp dword [edi + 0x70], ecx
jg 0x10046d1b
push edx
push ebp
push esi
push 0x61
push edi
call fcn.10031c40
add esp, 0x14
jmp 0x10046d42
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4], 0x61
mov dword [eax + ecx*4 + 4], esi
mov dword [eax + ecx*4 + 8], ebp
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
push ebp
push esi
push dword [esp + 0x60]
push dword [esp + 0x24]
push 0x8a
push edi
call fcn.1007ab00
mov ecx, dword [esp + 0x6c]
add esp, 0x18
test ecx, ecx
je 0x10046d80
mov eax, dword [edi]
mov edx, dword [edi + 0x6c]
cmp byte [eax + 0x57], 0
je 0x10046d74
mov eax, 0x100bdf30
jmp 0x10046d7d
mov eax, dword [edi + 0x68]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x10046d9c
mov al, byte [ebx + 0x13]
cmp al, 8
jae 0x10046d9c
movzx eax, al
mov dword [ebx + eax*4 + 0x9c], ecx
inc byte [ebx + 0x13]
cmp ebp, 1
je 0x100467d9
cmp ebp, dword [ebx + 0x1c]
jle case.0x10046782.4
mov dword [ebx + 0x1c], ebp
mov dword [ebx + 0x20], esi
mov esi, dword [esp + 0x50]
test esi, esi
jne 0x10046e14
mov eax, dword [esp + 0x48]
mov edx, dword [eax + 8]
test edx, edx
je 0x10046e14
mov ecx, dword [edi + 0x6c]
cmp dword [edi + 0x70], ecx
jg 0x10046de5
push 0
push dword [esp + 0x64]
push edx
push 0x3d
push edi
call fcn.10031c40
add esp, 0x14
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
lea eax, [ecx + 1]
mov dword [edi + 0x6c], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [edi + 0x68]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4], 0x3d
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret