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

Disassembly:
push 0xffffffffffffffff
push 0x4f6ef4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc8
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x88]
mov eax, dword [ecx + 0x184]
mov edi, dword [ecx + 0x17c]
mov dword [esp + 0x30], eax
call fcn.00453530
mov eax, dword [esi + 0x64]
mov ecx, dword [esi + 0x88]
imul eax, dword [0x536214]
mov edx, dword [ecx + 0x1a0]
mov dword [esp + 0x20], eax
push 0
push edx
lea eax, [esp + 0x84]
lea edx, [esp + 0x4c]
push eax
push edx
call fcn.00453e10
mov ecx, dword [esi + 0x88]
push 0
lea edx, [esp + 0x80]
mov eax, dword [ecx + 0x1a4]
push eax
lea eax, [esp + 0xa8]
push edx
push eax
call fcn.00453e10
mov ebx, dword [esp + 0x44]
mov eax, dword [esi + 0x60]
mov edx, dword [0x536200]
mov ebp, ebx
sub ebp, eax
mov ecx, dword [esi + 0x4c]
imul ebp, edx
add ebp, ecx
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0xa0]
sub ebp, eax
mov eax, dword [esi + 0x88]
inc ebp
imul ebp, edx
add ebp, ecx
mov ecx, dword [eax + 0x1a4]
mov dword [esp + 0xa4], ebp
mov ebp, dword [eax + 0x1a0]
sub ecx, ebp
mov ebp, dword [esp + 0x20]
inc ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x50], ecx
mov ecx, dword [esi + 0x48]
mov eax, ecx
mov dword [esp + 0x70], ecx
sub eax, ebp
add edi, eax
cmp ecx, edi
jg 0x476bec
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x30]
add eax, ecx
xor ecx, ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x28], ecx
jle 0x4771de
lea eax, [ebx + ebx*2]
shl eax, 2
shl ebx, 5
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], ebx
jmp 0x476c22
mov ecx, dword [esp + 0x28]
mov eax, dword [esi + 0x88]
mov edi, dword [eax + 0x1a0]
mov ebx, dword [eax + 0x2d8]
mov eax, dword [eax + 0x190]
add edi, ecx
lea ecx, [ecx + ecx*2]
shl edi, 5
mov ebp, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov ebx, dword [edi + ebx + 0x10]
mov ecx, dword [eax + 8]
mov edi, dword [eax + 4]
mov dword [esp + 0x30], ecx
xor ecx, ecx
mov eax, 0x50cdac
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x90], edi
mov dword [esp + 0x60], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x4c]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
mov byte [esp + 0xe0], 2
mov dword [esp + 0x38], eax
jg 0x476ca2
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x94]
add edx, ecx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], edx
push ecx
mov dword [esp + 0x40], eax
call dword [0x4fd174]
push eax
lea ecx, [esp + 0x60]
call fcn.004d7108
cmp ebp, edi
jne 0x476d0c
mov edx, dword [0x5355b0]
mov edi, dword [esp + 0x20]
mov ecx, edx
mov eax, dword [esi + 0x48]
imul ecx, ebp
sub ecx, edi
mov dword [esp + 0x34], eax
add ecx, eax
cmp eax, ecx
jg 0x476cf6
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x30]
add ecx, ebp
imul ecx, edx
sub ecx, edi
add ecx, eax
mov dword [esp + 0x3c], ecx
jmp 0x47706a
mov edi, dword [esi + 0x88]
mov eax, dword [edi + 0x98]
test eax, eax
je 0x476d4c
mov edx, dword [edi + 0x2a0]
mov ebx, dword [esp + 0x2c]
add edx, ebx
mov ecx, edx
mov eax, dword [ecx]
shl eax, 5
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0xd4], ecx
mov ecx, dword [edi + 0x2d8]
add ecx, eax
mov eax, dword [ecx + 8]
lea ecx, [eax + edx*2]
jmp 0x476dbd
mov eax, dword [edi + 0x74]
test eax, eax
jne 0x476d72
mov eax, dword [edi + 0x80]
test eax, eax
jne 0x476d72
mov eax, dword [edi + 0x2d8]
mov ecx, dword [esp + 0x48]
add eax, ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x24], edx
jmp 0x476dc1
mov eax, dword [edi + 0x150]
mov ebx, dword [esp + 0x2c]
add eax, ebx
mov ecx, eax
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov edx, dword [ecx + 8]
mov ecx, dword [edi + 0x284]
dec ecx
mov dword [esp + 0xd4], edx
cmp ecx, eax
mov edx, ecx
jl 0x476d9e
mov edx, eax
test edx, edx
jge 0x476da6
xor eax, eax
jmp 0x476dac
cmp ecx, eax
jge 0x476dac
mov eax, ecx
mov ecx, dword [edi + 0x2d8]
shl eax, 5
add ecx, eax
mov eax, dword [ecx + 8]
lea ecx, [eax + ebx*2]
mov dword [esp + 0x24], ecx
mov edx, dword [0x5361f4]
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x1c], edx
jle 0x476e8f
mov eax, dword [esp + 0x24]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov ax, word [ecx]
cmp ax, 9
jne 0x476dff
mov ecx, dword [edi + 0x100]
mov eax, ebx
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
jmp 0x476e75
mov dword [esp + 0x6c], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x476e6e
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x70]
push 1
push eax
push ecx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x476e53
mov edx, dword [0x536220]
mov eax, dword [esp + 0x98]
sub eax, edx
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x6c]
mov cx, word [esp + 0x98]
and eax, 0xffff
lea eax, [eax*2 + 0x53623c]
mov word [eax], cx
xor edx, edx
mov dx, word [eax]
add ebx, edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add ecx, 2
dec eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
jne 0x476de1
mov eax, dword [esi + 0x48]
mov edx, dword [esp + 0x20]
mov ecx, eax
sub ecx, edx
add ecx, ebx
cmp eax, ecx
jg 0x476f79
mov edi, dword [esi + 0x88]
mov edx, dword [0x5361f4]
add edi, 0x100
xor ebx, ebx
test ebp, ebp
mov dword [esp + 0x1c], edx
jle 0x476f6e
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
mov ax, word [ecx]
cmp ax, 9
jne 0x476ee6
mov ecx, dword [edi]
mov eax, ebx
cdq
idiv ecx
sub ecx, edx
add ebx, ecx
jmp 0x476f5c
mov dword [esp + 0x10], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x476f55
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x80]
push edx
lea eax, [esp + 0x14]
push 1
push eax
push ecx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x476f3a
mov edx, dword [0x536220]
mov eax, dword [esp + 0x80]
sub eax, edx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
mov cx, word [esp + 0x80]
and eax, 0xffff
lea eax, [eax*2 + 0x53623c]
mov word [eax], cx
xor edx, edx
mov dx, word [eax]
add ebx, edx
mov ecx, dword [esp + 0x14]
add ecx, 2
dec ebp
mov dword [esp + 0x14], ecx
jne 0x476ecc
mov eax, dword [esi + 0x48]
mov edx, dword [esp + 0x20]
sub eax, edx
add eax, ebx
mov ebx, dword [esi + 0x88]
mov ecx, dword [0x5361f4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
add ebx, 0x100
xor edi, edi
test eax, eax
mov dword [esp + 0x1c], ecx
jle 0x47704b
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x10], eax
mov ax, word [ebp]
cmp ax, 9
jne 0x476fc3
mov ecx, dword [ebx]
mov eax, edi
cdq
idiv ecx
sub ecx, edx
add edi, ecx
jmp 0x477039
mov dword [esp + 0x74], eax
and eax, 0xffff
cmp word [eax*2 + 0x53623c], 0
lea eax, [eax*2 + 0x53623c]
jne 0x477032
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x88]
push edx
lea eax, [esp + 0x78]
push 1
push eax
push ecx
call dword [0x4fd160]
mov eax, dword [0x536238]
test eax, eax
je 0x477017
mov edx, dword [0x536220]
mov eax, dword [esp + 0x88]
sub eax, edx
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x74]
mov cx, word [esp + 0x88]
and eax, 0xffff
lea eax, [eax*2 + 0x53623c]
mov word [eax], cx
xor edx, edx
mov dx, word [eax]
add edi, edx
mov eax, dword [esp + 0x10]
add ebp, 2
dec eax
mov dword [esp + 0x10], eax
jne 0x476fac
mov eax, dword [0x5355b0]
mov ebx, dword [esp + 0x20]
imul eax, dword [esp + 0x30]
mov edx, dword [esi + 0x48]
sub eax, ebx
mov ebx, dword [esp + 0x4c]
add eax, edx
add eax, edi
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x34]
push ecx
call dword [0x4fd174]
push eax
lea ecx, [esp + 0x68]
call fcn.004d7108
push 0
push 0
push 0
push 0
call dword [0x4fd140]
push eax
lea ecx, [esp + 0x58]
call fcn.004d7108
mov edi, dword [esp + 0x68]
lea eax, [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
neg eax
sbb eax, eax
lea ecx, [esp + 0x5c]
and eax, edi
push 3
neg ecx
sbb ecx, ecx
push eax
and ecx, ebp
push ecx
push edx
call dword [0x4fd144]
mov ecx, dword [esp + 0x58]
lea eax, [esp + 0x34]
push eax
push ecx
call dword [0x4fd148]
push esi
lea ecx, [esp + 0xbc]
call fcn.004d6e60
lea edx, [esp + 0x54]
lea ecx, [esp + 0xb8]
push edx
mov byte [esp + 0xe4], 3
call fcn.004d6b20
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
sub eax, edx
sub ecx, edi
push 0x550009
push eax
mov eax, dword [esp + 0xc4]
push ecx
push edx
push edi
push eax
call dword [0x4fd1a4]
push 0
lea ecx, [esp + 0xbc]
call fcn.004d6b20
test ebx, ebx
jle 0x477139
add dword [esp + 0x28], ebx
lea ecx, [esp + 0xb8]
mov byte [esp + 0xe0], 2
call fcn.004d6ed2
mov edi, 0x50bb04
mov dword [esp + 0x54], edi
lea ecx, [esp + 0x54]
mov byte [esp + 0xe0], 4
call fcn.004d715f
mov dword [esp + 0x64], edi
lea ecx, [esp + 0x64]
mov byte [esp + 0xe0], 5
call fcn.004d715f
mov dword [esp + 0x5c], edi
lea ecx, [esp + 0x5c]
mov dword [esp + 0xe0], 6
call fcn.004d715f
mov eax, dword [esp + 0x28]
mov edx, dword [0x536200]
mov ebp, dword [esp + 0x50]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
inc eax
add ebp, edx
add ebx, 0x20
add edi, 0xc
cmp eax, ecx
mov dword [esp + 0xe0], 0xffffffff
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], ebp
mov dword [esp + 0x48], ebx
mov dword [esp + 0x2c], edi
jl 0x476c1e
mov ebx, dword [esp + 0x44]
mov eax, dword [esi + 0x48]
mov edx, dword [esi + 0x118]
mov ecx, dword [esi + 0x4c]
add edx, eax
mov dword [esp + 0xb0], edx
mov edx, dword [esi + 0x11c]
mov dword [esp + 0xac], ecx
add edx, ecx
mov ecx, dword [esi + 0x64]
mov dword [esp + 0xa8], eax
imul ecx, dword [0x536214]
sub eax, ecx
mov dword [esp + 0xb4], edx
mov edx, dword [esi + 0x1c]
mov ebp, eax
mov eax, dword [esp + 0x18]
push edx
add eax, ebx
mov dword [esp + 0x1c], eax
call dword [0x4fd610]
mov ebx, dword [0x4fd1b0]
mov edi, eax
mov eax, dword [0x5361ec]
push eax
push edi
call ebx
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xa8]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
push ecx
mov ecx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0x80]
push eax
push ecx
push edx
push ebp
push edi
mov ecx, esi
call fcn.00469310
mov eax, dword [esp + 0x4c]
push eax
push edi
call ebx
mov ecx, dword [esi + 0x1c]
push edi
push ecx
call dword [0x4fd614]
mov ecx, dword [esp + 0xd8]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xd4
ret