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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x44]
cmp eax, dword [ecx + 8]
jbe 0x474d90
sub esp, 0xc4
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x474d49
mov edx, dword [esp + 0xcc]
lea ebx, [edx - 1]
test ebx, ebx
jge 0x474d36
neg ebx
lea eax, [ebx - 1]
mov ebx, 0xc
cmp ebx, 0xffffffff
je 0x474d2f
cdq
idiv ebx
lea edx, [eax + 1]
mov ebp, dword [esp + 0xc8]
sub ebp, edx
lea edx, [eax + eax*2]
mov esi, dword [esp + 0xcc]
lea edx, [esi + edx*4 + 0xb]
cmp edx, 0xc
jl 0x474d26
mov eax, edx
mov esi, eax
cmp ebx, 0xffffffff
je 0x474d1f
cdq
idiv ebx
lea edx, [eax + ebp]
lea ebx, [eax + eax*2]
shl ebx, 2
sub esi, ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x50], esi
mov ebx, dword [esp + 0xe0]
test ebx, ebx
jge 0x474d07
mov ebp, ebx
neg ebx
lea eax, [ebx - 1]
mov ebx, 0x3b9aca00
cmp ebx, 0xffffffff
je 0x474d00
cdq
idiv ebx
lea edx, [eax + 1]
mov edi, dword [esp + 0xdc]
sub edi, edx
imul eax, eax, 0x3b9aca00
lea edx, [ebp + eax + 0x3b9aca00]
cmp edx, 0x3b9aca00
jl 0x474cf7
mov eax, edx
mov ebp, eax
cmp ebx, 0xffffffff
je 0x474cf0
cdq
idiv ebx
lea edx, [eax + edi]
imul eax, eax, 0x3b9aca00
sub ebp, eax
mov dword [esp + 0x4c], ebp
test edx, edx
jge 0x474cdf
mov ebx, edx
neg edx
lea eax, [edx - 1]
mov edi, 0x3c
cmp edi, 0xffffffff
je 0x474cd8
cdq
idiv edi
lea edx, [eax + 1]
mov ebp, dword [esp + 0xd8]
sub ebp, edx
imul eax, eax, 0x3c
lea edx, [ebx + eax + 0x3c]
cmp edx, 0x3c
jl 0x474ccf
mov eax, edx
mov ebx, eax
cmp edi, 0xffffffff
je 0x474cc8
cdq
idiv edi
lea edx, [eax + ebp]
imul eax, eax, 0x3c
sub ebx, eax
mov dword [esp + 0x48], ebx
test edx, edx
jge 0x474cbc
mov ebp, edx
neg edx
lea eax, [edx - 1]
cmp edi, 0xffffffff
je 0x474cb5
cdq
idiv edi
lea edx, [eax + 1]
mov ecx, dword [esp + 0xd4]
sub ecx, edx
imul eax, eax, 0x3c
lea edx, [ebp + eax + 0x3c]
cmp edx, 0x3c
jl 0x474cae
mov eax, edx
mov ebp, eax
cmp edi, 0xffffffff
je 0x474ca7
cdq
idiv edi
add ecx, eax
imul eax, eax, 0x3c
sub ebp, eax
mov dword [esp + 0x60], ecx
mov dword [esp + 0x54], ebp
test ecx, ecx
jge 0x474c90
neg ecx
lea eax, [ecx - 1]
mov ecx, 0x18
cmp ecx, 0xffffffff
je 0x474c89
cdq
idiv ecx
lea edx, [eax + eax*2]
lea edi, [eax + 1]
mov eax, ebx
mov ebx, dword [esp + 0xd0]
sub ebx, edi
mov edi, dword [esp + 0x60]
lea edx, [edi + edx*8 + 0x18]
mov dword [esp + 0x60], edx
cmp edx, 0x18
jl 0x474c7e
mov edi, eax
mov eax, edx
cmp ecx, 0xffffffff
je 0x474c77
cdq
idiv ecx
lea ecx, [eax + ebx]
lea edx, [eax + eax*2]
shl edx, 3
mov ebx, dword [esp + 0x60]
sub ebx, edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x2c]
mov edx, eax
add eax, 0xd116ebf
mov dword [esp + 0x30], eax
mov dword [esp], eax
sar edx, 0x1f
mov edi, dword [esp + 0x2c]
add edi, 0xd116ebf
adc edx, 0x44
mov dword [esp + 0xa8], edx
mov dword [esp + 4], edx
mov dword [esp + 8], 0x190
mov dword [esp + 0xc], 0
call fcn.004453b0
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x190
mul ecx
mov ebx, dword [esp + 0x30]
mov ebp, ebx
sub ebx, eax
mov dword [esp + 0x30], ebx
mov esi, eax
mov eax, ecx
mov edi, 0x23ab1
mov ecx, edx
mul edi
mov dword [esp + 0xa4], edx
mov dword [esp + 0x68], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x5c], edi
mov dword [esp], ebx
imul edi, edi, 0x190
add ecx, edi
sub ebp, esi
mov ebp, dword [esp + 0xa8]
sbb ebp, ecx
mov dword [esp + 0xa8], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], 0x64
mov dword [esp + 0xc], 0
call fcn.004453b0
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0x64
mul ecx
mov ebx, dword [esp + 0x30]
mov ebp, ebx
sub ebx, eax
mov esi, eax
mov eax, ecx
mov edi, 0x8eac
mov ecx, edx
mul edi
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov edi, dword [esp + 0x68]
add eax, edi
mov dword [esp + 0x98], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x94], edi
imul edi, edi, 0x64
add ecx, edi
sub ebp, esi
mov ebp, dword [esp + 0xa8]
sbb ebp, ecx
mov ecx, ebx
shr ebx, 2
mov esi, ebp
shl ebp, 0x1e
or ebx, ebp
mov ebp, ebx
shl ebx, 2
mov dword [esp + 0x90], ebx
mov edi, ecx
sub ecx, ebx
mov eax, ebp
mov ebx, 0x5b5
mul ebx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
mov ebx, dword [esp + 0x98]
add ebx, eax
mov dword [esp + 0x84], ebx
mov eax, ecx
mov edx, 0x16d
mul edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], eax
add eax, ebx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x50]
inc eax
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x5c]
imul eax, eax, 0x23ab1
mov ecx, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x94]
imul ecx, ecx, 0x8eac
mov ebx, dword [esp + 0xa0]
add ecx, ebx
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x68]
add ebx, edx
adc eax, ecx
mov ecx, esi
shr esi, 2
mov edx, esi
shl esi, 2
shr ebp, 0x1e
or esi, ebp
mov ebx, dword [esp + 0x90]
sub edi, ebx
sbb ecx, esi
imul edx, edx, 0x5b5
mov ebx, dword [esp + 0x8c]
add edx, ebx
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0x88]
add ebx, ebp
adc eax, edx
imul ecx, ecx, 0x16d
mov edx, dword [esp + 0x80]
add ecx, edx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
add edx, ebx
adc eax, ecx
mov ecx, dword [esp + 0x50]
cmp ecx, 0xd
jae 0x474c70
lea edx, [0x84c440]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x78]
mov ebx, edx
add edx, ecx
mov ebp, ecx
sar ecx, 0x1f
add ebx, ebp
adc eax, ecx
mov ecx, dword [esp + 0x2c]
mov ebx, ecx
sar ecx, 0x1f
mov ebp, ecx
and ecx, 3
lea esi, [ebx + ecx]
and esi, 3
sub esi, ecx
test esi, esi
jne 0x474c65
mov ecx, eax
mov eax, ebx
mov esi, 0x51eb851f
mov edi, edx
imul esi
mov esi, edx
sar edx, 5
sub edx, ebp
imul edx, edx, 0x64
mov eax, ebx
sub ebx, edx
test ebx, ebx
je 0x474c4e
mov eax, 1
test al, al
je 0x474a47
mov edx, dword [esp + 0xcc]
cmp edx, 3
jl 0x474a47
add edi, 1
adc ecx, 0
mov edx, dword [esp + 0x58]
dec edx
mov dword [esp + 0x74], edx
mov ebx, edx
add edx, edi
mov eax, edx
mov ebp, 0x15180
mul ebp
mov ebp, dword [esp + 0x44]
imul ebp, ebp, 0xe10
mov esi, dword [esp + 0x54]
imul esi, esi, 0x3c
add ebp, esi
mov esi, dword [esp + 0x48]
add ebp, esi
mov dword [esp + 0x70], ebp
add ebp, eax
mov dword [esp + 0x6c], ebp
add ebp, 0xe5263700
mov dword [esp + 0x34], ebp
mov esi, dword [esp + 0xe4]
mov dword [esp], esi
mov dword [esp + 4], ebp
sar ebx, 0x1f
mov esi, dword [esp + 0x74]
add esi, edi
adc ecx, ebx
imul ecx, ecx, 0x15180
add ecx, edx
mov edx, dword [esp + 0x70]
mov ebx, edx
sar edx, 0x1f
add ebx, eax
adc ecx, edx
mov edx, dword [esp + 0x6c]
add edx, 0xe5263700
adc ecx, 0x80000001
mov dword [esp + 0x38], ecx
mov dword [esp + 8], ecx
call fcn.00474e50
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x40], ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov dword [esp + 0x64], esi
test ecx, ecx
je 0x474c41
mov eax, dword [esp + 0x34]
mov edi, eax
sub eax, ecx
sar ecx, 0x1f
mov esi, dword [esp + 0x40]
sub edi, esi
mov edi, dword [esp + 0x38]
sbb edi, ecx
cmp edi, edx
sete cl
cmp eax, ebx
setb bl
and ecx, ebx
cmp edi, edx
setl bl
or ebx, ecx
test bl, bl
jne 0x474c17
cmp edi, ebp
sete cl
mov edx, dword [esp + 0x64]
cmp eax, edx
setae al
and ecx, eax
cmp edi, ebp
setg al
or eax, ecx
test al, al
jne 0x474bf7
mov eax, dword [esp + 0x34]
mov ecx, eax
sub eax, esi
mov edx, esi
sar esi, 0x1f
sub ecx, edx
mov ecx, dword [esp + 0x38]
sbb ecx, esi
add eax, 0x7791f700
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xb4], eax
adc ecx, 0xe
mov dword [esp + 0xb8], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xe4]
lea ecx, [0x870e60]
cmp eax, ecx
jne 0x474bb8
xor eax, eax
mov dword [esp + 0xc0], eax
mov ecx, dword [esp + 0xbc]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xf4], eax
add esp, 0xc4
ret
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00474e50
mov esi, dword [esp + 0x14]
jmp 0x474b4e
mov eax, dword [esp + 0x3c]
add eax, 0xffffffff
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
adc edx, 0xffffffff
mov dword [esp + 8], edx
call fcn.00474e50
mov esi, dword [esp + 0x14]
jmp 0x474b4e
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
jmp 0x474b63
sar esi, 7
sub esi, ebp
imul esi, esi, 0x190
sub eax, esi
test eax, eax
sete al
jmp 0x474a31
mov ecx, eax
mov edi, edx
xor eax, eax
jmp 0x474a31
call fcn.00424680
ud2
neg eax
jmp 0x4747aa
mov edi, eax
mov ecx, ebx
mov ebx, edx
jmp 0x4747b9
neg eax
jmp 0x474774
mov eax, ebx
mov ecx, 0x18
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xd0]
jmp 0x47478d
neg eax
jmp 0x474747
mov ebp, edx
jmp 0x47474e
neg eax
jmp 0x47471b
mov ecx, dword [esp + 0xd4]
jmp 0x47472e
neg eax
jmp 0x4746f4
mov ebx, edx
mov edx, ebp
jmp 0x4746fc
neg eax
jmp 0x4746c8
mov edi, 0x3c
mov ebp, dword [esp + 0xd8]
jmp 0x4746db
neg eax
jmp 0x474699
mov ebp, edx
mov edx, edi
jmp 0x4746a4
neg eax
jmp 0x474664
mov ebx, 0x3b9aca00
mov edx, dword [esp + 0xe0]
mov edi, dword [esp + 0xdc]
jmp 0x47467d
neg eax
jmp 0x47462a
mov esi, edx
mov edx, ebp
jmp 0x474635
neg eax
jmp 0x4745f7
mov edx, ebx
mov ebp, dword [esp + 0xc8]
mov ebx, 0xc
jmp 0x474611
lea eax, [0x712796]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], 0x26
lea eax, [0x6b4960]
mov dword [esp], eax
lea eax, [esp + 0xac]
mov dword [esp + 4], eax
call fcn.0040a880
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004254e0
ud2
call fcn.004486b0
jmp fcn.004745a0