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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f1a50
mov eax, dword fs:[0]
push eax
sub esp, 0x88
mov eax, dword [0x52b360]
xor eax, esp
mov dword [esp + 0x80], eax
push ebx
push esi
push edi
mov eax, dword [0x52b360]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov esi, ecx
xor edx, edx
mov dword [esp + 0x4c], edx
mov ebx, 7
xor ecx, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], edx
mov word [esp + 0x78], cx
mov dword [esp + 0xa0], edx
mov eax, dword [0x532e64]
cmp eax, edx
je 0x471de8
lea ecx, [eax + 0x144]
lea edi, [eax + 0x108]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], edi
cmp ecx, edx
je 0x471de8
cmp edi, edx
je 0x471de8
mov eax, dword [edi + 0x14]
sub eax, dword [edi + 0x10]
test eax, 0xfffffffc
je 0x471de8
mov eax, dword [ecx + 0x14]
sub eax, dword [ecx + 0x10]
test eax, 0xfffffffc
je 0x471de8
call fcn.0047ef60
mov byte [esp + 0x1a], al
call fcn.0047ef10
mov byte [esp + 0x18], al
call fcn.0047efb0
mov byte [esp + 0x1b], al
call fcn.0047f000
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
mov byte [esp + 0x19], al
xor eax, eax
xor bl, bl
sar ecx, 2
mov byte [esp + 0x17], bl
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], eax
test ecx, ecx
jbe 0x47184b
lea esp, [esp]
mov bl, byte [esp + 0x17]
test bl, bl
jne 0x471847
mov esi, dword [esp + 0x28]
mov edx, dword [esi + 0x14]
sub edx, dword [esi + 0x10]
mov ebx, dword [esp + 0x1c]
sar edx, 2
cmp ebx, edx
jb 0x471746
call fcn.004c96d9
mov eax, dword [esi + 0x10]
lea edi, [ebx*4]
mov ecx, dword [edi + eax]
cmp dword [ecx + 0xc], 0xf4240
jne 0x471777
mov edx, dword [esi + 0x14]
sub edx, eax
sar edx, 2
cmp ebx, edx
jb 0x47176d
call fcn.004c96d9
mov eax, dword [esi + 0x10]
mov ecx, dword [edi + eax]
mov dword [esp + 0x20], ecx
mov edx, dword [esi + 0x14]
sub edx, dword [esi + 0x10]
sar edx, 2
cmp ebx, edx
jb 0x471789
call fcn.004c96d9
mov eax, dword [esi + 0x10]
mov ecx, dword [edi + eax]
cmp byte [ecx + 0x8c], 0
jne 0x471845
mov edx, dword [esi + 0x14]
sub edx, eax
sar edx, 2
cmp ebx, edx
jb 0x4717ad
call fcn.004c96d9
mov eax, dword [esi + 0x10]
mov eax, dword [edi + eax]
mov edi, dword [eax + 0x64]
sub edi, dword [eax + 0x60]
add eax, 0x54
sar edi, 2
xor ebx, ebx
test edi, edi
jbe 0x471821
mov eax, dword [esp + 0x28]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x10]
sar ecx, 2
cmp dword [esp + 0x1c], ecx
jb 0x4717dd
call fcn.004c96d9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov eax, dword [edx + 0x10]
add ecx, ecx
add ecx, ecx
mov esi, dword [eax + ecx]
add eax, ecx
mov eax, dword [esi + 0x64]
sub eax, dword [esi + 0x60]
add esi, 0x54
sar eax, 2
cmp ebx, eax
jb 0x471806
call fcn.004c96d9
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + ebx*4]
cmp byte [edx + 0xb0], 0
jne 0x47181c
inc ebx
cmp ebx, edi
jb 0x4717c5
jmp 0x471821
mov byte [esp + 0x17], 1
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + 0x14]
sub edx, dword [ecx + 0x10]
mov eax, dword [esp + 0x1c]
inc eax
sar edx, 2
mov dword [esp + 0x1c], eax
cmp eax, edx
jb 0x471720
mov bl, byte [esp + 0x17]
jmp 0x471847
mov bl, 1
mov esi, dword [esp + 0x24]
mov byte [esp + 0x17], 0
call fcn.00472c10
mov dword [esp + 0x1c], eax
test eax, eax
je 0x4718c3
mov ecx, eax
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
xor edi, edi
sar eax, 2
test eax, eax
jbe 0x4718c3
cmp edi, eax
jb 0x47187b
call fcn.004c96d9
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0xc]
cmp dword [eax + edi*4], 0
je 0x4718ae
mov ecx, dword [ecx + 0x10]
sub ecx, eax
sar ecx, 2
cmp edi, ecx
jb 0x471895
call fcn.004c96d9
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0xc]
mov ecx, dword [eax + edi*4]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
call eax
test al, al
jne 0x4718be
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x10]
sub eax, dword [ecx + 0xc]
inc edi
sar eax, 2
cmp edi, eax
jb 0x47187b
jmp 0x4718c3
mov byte [esp + 0x17], 1
mov cl, byte [esp + 0x17]
or cl, bl
or cl, byte [esp + 0x19]
or cl, byte [esp + 0x18]
or cl, byte [esp + 0x1a]
jne 0x471992
cmp byte [esp + 0x1b], cl
je 0x471977
lea edx, [esp + 0x50]
push edx
call fcn.00471280
push 0xffffffffffffffff
push 0
push eax
lea eax, [esp + 0x80]
mov byte [esp + 0xac], 1
call fcn.00401850
mov edi, 8
mov byte [esp + 0xa0], 0
cmp dword [esp + 0x68], edi
jb 0x471928
mov eax, dword [esp + 0x54]
push eax
call fcn.004c8f17
add esp, 4
cmp dword [esp + 0x88], 0
jne 0x47193d
call fcn.00471580
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
xor edx, edx
push 0xffffffffffffffff
push edx
lea eax, [esp + 0x7c]
push eax
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], 0
mov eax, esi
mov word [esi + 4], dx
call fcn.00401850
cmp dword [esp + 0x8c], edi
jb 0x471e1a
mov ecx, dword [esp + 0x78]
push ecx
jmp 0x471e12
cmp dword [esp + 0x20], 0
je 0x471a59
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 4]
mov eax, dword [edx]
add ecx, 4
push 1
call eax
mov eax, dword [esp + 0x48]
mov edi, dword [eax + 0x14]
sub edi, dword [eax + 0x10]
lea ecx, [esp + 0x2c]
sar edi, 2
push ecx
mov dword [esp + 0x24], edi
call fcn.00403c40
xor ebx, ebx
cmp edi, ebx
mov byte [esp + 0xa0], 2
mov edx, dword [esp + 0x3c]
jle 0x471aee
mov esi, dword [esp + 0x48]
mov eax, dword [esi + 0x14]
sub eax, dword [esi + 0x10]
sar eax, 2
cmp ebx, eax
jb 0x4719dd
call fcn.004c96d9
mov edx, dword [esp + 0x3c]
cmp byte [esp + 0x1a], 0
mov ecx, dword [esi + 0x10]
mov edi, dword [ecx + ebx*4]
mov dword [esp + 0x4c], edi
je 0x4719f7
cmp byte [edi + 0x14c], 0
jne 0x471a4d
cmp byte [esp + 0x18], 0
je 0x471a07
cmp byte [edi + 0x14d], 0
jne 0x471a4d
cmp byte [esp + 0x19], 0
je 0x471a17
cmp byte [edi + 0x14f], 0
jne 0x471a4d
mov edx, dword [esp + 0x28]
push edx
mov esi, edi
call fcn.004714b0
add esp, 4
test al, al
jne 0x471a49
cmp byte [esp + 0x17], al
je 0x471ad9
mov esi, dword [esp + 0x1c]
push edi
call fcn.00471500
add esp, 4
test al, al
je 0x471ad9
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
test ecx, ecx
jne 0x471a94
xor eax, eax
jmp 0x471a9d
xor ecx, ecx
push 0xffffffffffffffff
push ecx
lea edx, [esp + 0x7c]
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], 0
push edx
mov eax, esi
mov word [esi + 4], cx
call fcn.00401850
cmp dword [esp + 0x8c], 8
jb 0x471e1a
mov eax, dword [esp + 0x78]
push eax
jmp 0x471e12
mov eax, dword [esp + 0x40]
sub eax, ecx
sar eax, 2
mov esi, edx
sub esi, ecx
sar esi, 2
cmp esi, eax
jae 0x471ab5
mov eax, edx
mov dword [edx], edi
lea edx, [eax + 4]
mov dword [esp + 0x3c], edx
jmp 0x471add
mov esi, edx
cmp ecx, edx
jbe 0x471ac0
call fcn.004c96d9
mov eax, dword [esp + 0x2c]
push esi
push eax
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x78]
push ecx
lea eax, [esp + 0x3c]
call fcn.004543c0
mov edx, dword [esp + 0x3c]
inc ebx
cmp ebx, dword [esp + 0x20]
jl 0x4719c3
mov esi, dword [esp + 0x24]
xor ebx, ebx
cmp dword [0x533310], ebx
jne 0x471b11
push ebx
call fcn.004caa2f
add esp, 4
push eax
mov dword [0x533310], eax
call fcn.004ca743
mov edx, dword [esp + 0x40]
add esp, 4
sub edx, dword [esp + 0x38]
mov edi, edx
sar edi, 2
cmp edi, 0x46
jbe 0x471ba3
call fcn.004ca755
xor edx, edx
div edi
mov edi, edx
cmp edi, ebx
jge 0x471b34
neg edi
mov edx, dword [esp + 0x3c]
sub edx, dword [esp + 0x38]
sar edx, 2
cmp edi, edx
jb 0x471b48
call fcn.004c96d9
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + edi*4]
mov edx, dword [esp + 0x44]
mov dword [edx], ecx
push 0xffffffffffffffff
xor eax, eax
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
push ebx
lea ecx, [esp + 0x7c]
mov word [esi + 4], ax
push ecx
mov eax, esi
call fcn.00401850
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x471b85
push eax
call fcn.004c8f17
add esp, 4
mov edx, dword [esp + 0x2c]
push edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.004c8f17
add esp, 4
jmp 0x471a7c
test byte [0x5354cc], 1
jne 0x471bc5
or dword [0x5354cc], 1
call fcn.004ca755
cdq
idiv dword [esp + 0x20]
mov dword [0x5354c8], edx
jmp 0x471bcb
mov edx, dword [0x5354c8]
cmp edx, ebx
jge 0x471bd7
neg edx
mov dword [0x5354c8], edx
cmp dword [esp + 0x20], ebx
mov dword [esp + 0x1c], ebx
jle 0x471c95
mov edi, dword [esp + 0x48]
mov ebx, dword [esp + 0x20]
jmp 0x471bf6
mov edx, dword [0x5354c8]
inc edx
cmp edx, ebx
mov dword [0x5354c8], edx
jl 0x471c13
xor edx, edx
mov dword [0x5354c8], edx
cmp byte [esp + 0x1b], dl
jne 0x471d47
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
mov esi, edx
sar ecx, 2
cmp edx, ecx
jb 0x471c27
call fcn.004c96d9
cmp byte [esp + 0x1a], 0
mov edx, dword [edi + 0x10]
mov esi, dword [edx + esi*4]
je 0x471c41
cmp byte [esi + 0x14c], 0
jne 0x471d82
cmp byte [esp + 0x18], 0
je 0x471c55
cmp byte [esi + 0x14d], 0
jne 0x471d82
cmp byte [esp + 0x19], 0
je 0x471c69
cmp byte [esi + 0x14f], 0
jne 0x471d82
mov eax, dword [esp + 0x28]
push eax
call fcn.004714b0
add esp, 4
test al, al
jne 0x471d82
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, ebx
mov dword [esp + 0x1c], eax
jl 0x471bf0
mov esi, dword [esp + 0x24]
xor ebx, ebx
cmp byte [esp + 0x1b], 0
mov edi, 8
je 0x471cde
lea edx, [esp + 0x50]
push edx
call fcn.00471280
push 0xffffffffffffffff
push ebx
push eax
lea eax, [esp + 0x80]
mov byte [esp + 0xac], 3
call fcn.00401850
mov byte [esp + 0xa0], 2
cmp dword [esp + 0x68], edi
jb 0x471cde
mov eax, dword [esp + 0x54]
push eax
call fcn.004c8f17
add esp, 4
cmp dword [esp + 0x88], ebx
jne 0x471cf2
call fcn.00471580
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x7c]
xor edx, edx
push eax
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], ebx
mov eax, esi
mov word [esi + 4], dx
call fcn.00401850
mov eax, dword [esp + 0x38]
cmp eax, ebx
je 0x471d22
push eax
call fcn.004c8f17
add esp, 4
mov ecx, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.004c8f17
add esp, 4
cmp dword [esp + 0x8c], edi
jmp 0x471e0b
mov esi, dword [esp + 0x24]
push esi
call fcn.00471280
mov eax, dword [esp + 0x38]
xor edi, edi
cmp eax, edi
je 0x471d64
push eax
call fcn.004c8f17
add esp, 4
mov ecx, dword [esp + 0x2c]
push ecx
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
call fcn.004c8f17
add esp, 4
jmp 0x471e03
mov eax, dword [esp + 0x44]
mov dword [eax], esi
mov esi, dword [esp + 0x24]
push 0xffffffffffffffff
xor edi, edi
push edi
lea edx, [esp + 0x7c]
xor ecx, ecx
mov dword [esi + 0x18], 7
mov dword [esi + 0x14], edi
push edx
mov eax, esi
mov word [esi + 4], cx
call fcn.00401850
mov eax, dword [esp + 0x38]
cmp eax, edi
je 0x471dbe
push eax
call fcn.004c8f17
add esp, 4
mov eax, dword [esp + 0x2c]
push eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
call fcn.004c8f17
add esp, 4
cmp dword [esp + 0x8c], 8
jb 0x471e1a
mov ecx, dword [esp + 0x78]
push ecx
jmp 0x471e12
push 0xffffffffffffffff
xor eax, eax
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], edx
push edx
lea ecx, [esp + 0x7c]
mov word [esi + 4], ax
push ecx
mov eax, esi
call fcn.00401850
cmp dword [esp + 0x8c], 8
jb 0x471e1a
mov edx, dword [esp + 0x78]
push edx
call fcn.004c8f17
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x80]
xor ecx, esp
call fcn.004c8f08
mov esp, ebp
pop ebp
ret 4