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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x18]
cmp eax, dword [ecx + 8]
jbe 0x462312
sub esp, 0x98
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x94], ecx
lea edx, [0x4f9aa0]
mov dword [esp], edx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
lea ebp, [esp + 0x90]
mov dword [esp + 8], ebp
call fcn.0040e560
movzx eax, byte [esp + 0x10]
test al, al
jne 0x461d56
lea eax, [0x4f9aa0]
mov dword [esp], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
lea ecx, [esp + 0x90]
mov dword [esp + 8], ecx
call fcn.0040ea90
mov eax, dword [esp + 0xc]
test byte [eax], al
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x9c]
cmp eax, ecx
je 0x461d47
movzx edx, byte [ecx + 0xf]
mov ebx, edx
and edx, 0x1f
movzx ebp, byte [eax + 0xf]
and ebp, 0x1f
xchg ebp, eax
cmp al, dl
xchg ebp, eax
jne 0x461d38
mov byte [esp + 0x17], bl
mov byte [esp + 0x15], dl
mov dword [esp], ecx
call fcn.004600f0
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
call fcn.004600f0
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
jne 0x461865
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
jne 0x461874
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00460180
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp], ecx
call fcn.00460180
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x58]
test ecx, ecx
jne 0x4618b2
test eax, eax
je 0x46194a
test ecx, ecx
je 0x4618b6
test eax, eax
jne 0x4618c5
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00460610
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00460f10
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov ecx, dword [esp + 4]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x28], edx
mov ebx, dword [esp + 0xa0]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00460610
mov eax, dword [esp + 8]
mov dword [esp], eax
call fcn.00460f10
mov eax, dword [esp + 0x28]
cmp dword [esp + 8], eax
jne 0x461d29
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x461d29
movzx eax, byte [esp + 0x15]
lea ecx, [eax - 1]
cmp cl, 0xf
jbe 0x461d1a
cmp al, 0x15
ja 0x461bc0
cmp al, 0x12
jbe 0x461b0b
cmp al, 0x13
jne 0x4619f0
mov eax, dword [esp + 0x9c]
movzx ecx, word [eax + 0x22]
mov edx, dword [esp + 0xa0]
cmp word [edx + 0x22], cx
jne 0x4619e1
movzx ecx, word [eax + 0x20]
cmp word [edx + 0x20], cx
jne 0x4619e1
mov dword [esp], eax
call fcn.00460b70
mov eax, dword [esp + 8]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
call fcn.00460b70
mov ecx, dword [esp + 8]
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x24]
xor esi, esi
jmp 0x4621f2
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
cmp al, 0x14
jne 0x461a95
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.00460f10
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00460f10
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
jne 0x461a86
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x461a86
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx + 0x28]
mov ebp, dword [esp + 0xa0]
cmp dword [ebp + 0x28], ebx
jne 0x461a77
mov dword [esp + 0x44], ebx
xor eax, eax
jmp 0x461fee
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00461730
movzx eax, byte [esp + 0xc]
test al, al
jne 0x461acd
xor eax, eax
jmp 0x461afd
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00461730
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
cmp al, 0x11
je 0x461b63
cmp al, 0x12
jne 0x461d65
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x24]
mov edx, dword [esp + 0xa0]
cmp dword [edx + 0x24], ecx
je 0x461b33
xor eax, eax
jmp 0x461b55
mov eax, dword [eax + 0x20]
mov ecx, dword [edx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00461730
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 8], ecx
call fcn.00461730
movzx eax, byte [esp + 0xc]
test al, al
je 0x461bb0
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xa0]
cmp dword [ecx + 0x28], eax
sete al
jmp 0x461bb2
xor eax, eax
mov byte [esp + 0xa8], al
add esp, 0x98
ret
cmp al, 0x17
ja 0x461c4a
cmp al, 0x16
jne 0x461c0c
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00461730
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xa0]
mov ecx, dword [ecx + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00461730
movzx eax, byte [esp + 0xc]
mov byte [esp + 0xa8], al
add esp, 0x98
ret
cmp al, 0x18
je 0x461d0b
cmp al, 0x19
jne 0x461d06
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x28]
mov edx, dword [esp + 0x9c]
cmp dword [edx + 0x28], ecx
jne 0x461cf7
mov eax, dword [edx + 0x20]
mov dword [esp], eax
call fcn.00460f10
mov eax, dword [esp + 8]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0xa0]
mov ebx, dword [edx + 0x20]
mov dword [esp], ebx
call fcn.00460f10
mov eax, dword [esp + 0x44]
cmp dword [esp + 8], eax
jne 0x461ce8
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x461ce8
mov edx, dword [esp + 0x9c]
mov ebx, dword [edx + 0x28]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0xa0]
xor eax, eax
jmp 0x461dd1
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
cmp al, 0x1a
jne 0x461d65
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
call fcn.0043c950
lea eax, [0x519bd1]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
call fcn.0043d240
mov dword [esp + 4], 0
movzx eax, byte [esp + 0x17]
and eax, 0x1f
mov dword [esp], eax
call fcn.0043cec0
call fcn.0043cb60
call fcn.0043c9b0
lea eax, [0x51958d]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
call fcn.0043b160
mov esi, dword [esp + 0x2c]
lea eax, [esi + 1]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
cmp eax, ebx
jge 0x461fba
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp eax, ecx
jae 0x461fd0
lea edi, [eax + eax*2]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp eax, ebp
jae 0x461fc9
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x2c], eax
mov eax, dword [esi + edi*4]
mov dword [esp], eax
call fcn.00460f10
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x88]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00460f10
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x461fab
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x461fab
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + eax*4 + 4]
mov ebx, dword [esp + 0x88]
mov ebp, dword [ebx + eax*4 + 4]
mov dword [esp], edx
mov dword [esp + 4], ebp
mov edx, dword [esp + 0xa4]
mov dword [esp + 8], edx
call fcn.00461730
movzx eax, byte [esp + 0xc]
test al, al
je 0x461f9c
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + eax*4]
mov dword [esp], edx
call fcn.00460fd0
mov eax, dword [esp + 8]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x88]
mov ebp, dword [ebx + edx*4]
mov dword [esp], ebp
call fcn.00460fd0
mov eax, dword [esp + 0x3c]
cmp dword [esp + 8], eax
jne 0x461f8d
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x461f8d
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x84]
mov edx, dword [ecx + eax*4 + 8]
mov ebx, dword [esp + 0x88]
lea ebp, [ebx + eax*4 + 8]
cmp dword [ebp], edx
jne 0x461f7e
mov ecx, dword [ecx + eax*4]
mov dword [esp], ecx
call fcn.00460e40
movzx eax, byte [esp + 4]
mov byte [esp + 0x16], al
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x88]
mov ecx, dword [edx + ecx*4]
mov dword [esp], ecx
call fcn.00460e40
movzx eax, byte [esp + 0x16]
cmp byte [esp + 4], al
je 0x461db8
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov ecx, ebp
call fcn.00468a00
call fcn.00468a00
mov esi, dword [esp + 0x30]
lea eax, [esi + 1]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0xa0]
mov edx, dword [esp + 0x9c]
cmp eax, ebx
jge 0x4621b9
mov esi, dword [edx + 0x24]
mov ecx, dword [edx + 0x28]
cmp eax, ecx
jae 0x4621cf
lea edi, [esi + eax*8]
mov edx, dword [ebp + 0x24]
mov ebp, dword [ebp + 0x28]
cmp eax, ebp
jae 0x4621c8
mov dword [esp + 0x30], eax
mov dword [esp + 0x60], edi
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], esi
lea ecx, [esi + eax*8]
mov ecx, dword [ecx]
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.00460370
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x80]
lea edx, [ecx + eax*8]
mov dword [esp + 0x4c], edx
mov ebx, dword [esp + 8]
mov dword [esp + 0x78], ebx
lea ebp, [ecx + eax*8]
mov ebp, dword [ebp]
mov dword [esp], edx
mov dword [esp + 4], ebp
call fcn.00460370
mov eax, dword [esp + 8]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call fcn.00460f10
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x74]
mov dword [esp], edx
call fcn.00460f10
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x4621aa
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x4621aa
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.004610c0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x8c], ecx
mov edx, dword [esp + 0x74]
mov dword [esp], edx
call fcn.004610c0
mov eax, dword [esp + 0x40]
cmp dword [esp + 8], eax
jne 0x46219b
mov ecx, dword [esp + 0x8c]
mov dword [esp], ecx
mov dword [esp + 8], eax
call fcn.00403490
movzx eax, byte [esp + 0xc]
test al, al
je 0x46219b
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x7c]
lea ecx, [ecx + eax*8 + 4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x60]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00460650
mov eax, dword [esp + 8]
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x80]
lea edx, [edx + ecx*8 + 4]
mov edx, dword [edx]
mov ebx, dword [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.00460650
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x64]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
call fcn.00461730
movzx eax, byte [esp + 0xc]
test al, al
jne 0x461fd5
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov ecx, ebp
call fcn.00468a00
call fcn.00468a00
mov edi, dword [esp + 0x38]
lea esi, [edi + 1]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0x24]
cmp esi, ebp
jge 0x462236
jae 0x462308
mov edi, dword [ebx + esi*4]
cmp esi, ecx
jae 0x462301
mov dword [esp + 0x38], esi
mov ecx, dword [eax + esi*4]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00461730
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4621d4
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.00460bf0
mov eax, dword [esp + 8]
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 4]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
call fcn.00460bf0
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x5c]
xor esi, esi
jmp 0x4622a5
mov edi, dword [esp + 0x34]
lea esi, [edi + 1]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xa4]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x5c]
cmp esi, edx
jge 0x4622e2
jae 0x4622f8
mov edi, dword [ebp + esi*4]
cmp esi, ecx
jae 0x4622f1
mov dword [esp + 0x34], esi
mov ecx, dword [eax + esi*4]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00461730
movzx eax, byte [esp + 0xc]
test al, al
jne 0x462287
mov byte [esp + 0xa8], 0
add esp, 0x98
ret
mov byte [esp + 0xa8], 1
add esp, 0x98
ret
mov eax, esi
call fcn.00468a00
mov eax, esi
mov ecx, edx
call fcn.00468a00
mov eax, esi
call fcn.00468a00
mov eax, esi
mov ecx, ebp
call fcn.00468a00
nop
call fcn.00467570
jmp fcn.00461730