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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x6c]
cmp eax, dword [ecx + 8]
jbe 0x476bb7
sub esp, 0xec
lea edi, [esp + 0x110]
xor eax, eax
call fcn.0044d9bb
mov ecx, dword [esp + 0x10c]
test ecx, ecx
je 0x476b9d
mov edx, dword [esp + 0xf4]
lea ebx, [edx - 1]
test ebx, ebx
jge 0x476b88
mov ebp, ebx
neg ebx
dec ebx
mov eax, 0xaaaaaaab
mov esi, edx
imul ebx
sub edx, ebp
sar ebx, 0x1f
dec edx
sar edx, 3
sub edx, ebx
lea ebx, [edx + 1]
mov ebp, dword [esp + 0xf0]
sub ebp, ebx
lea edx, [edx + edx*2]
lea edx, [esi + edx*4 + 0xb]
cmp edx, 0xc
jl 0x476b7f
mov eax, 0xaaaaaaab
mov ebx, edx
imul edx
add edx, ebx
mov esi, ebx
sar ebx, 0x1f
sar edx, 3
sub edx, ebx
lea ebx, [edx + ebp]
lea edx, [edx + edx*2]
shl edx, 2
sub esi, edx
mov edx, dword [esp + 0x108]
test edx, edx
jge 0x476b71
mov ebp, edx
neg edx
dec edx
mov eax, 0x44b82fa1
mov edi, edx
imul edx
sar edi, 0x1f
sar edx, 0x1c
sub edx, edi
lea edi, [edx + 1]
mov eax, ecx
mov ecx, dword [esp + 0x104]
sub ecx, edi
imul edx, edx, 0x3b9aca00
lea edx, [ebp + edx + 0x3b9aca00]
cmp edx, 0x3b9aca00
jl 0x476b68
mov ebp, eax
mov eax, 0x44b82fa1
mov edi, edx
imul edx
mov eax, edi
sar edi, 0x1f
sar edx, 0x1c
sub edx, edi
add ecx, edx
imul edx, edx, 0x3b9aca00
sub eax, edx
test ecx, ecx
jge 0x476b5c
mov dword [esp + 0x64], ecx
neg ecx
dec ecx
mov edi, eax
mov eax, 0x88888889
imul ecx
mov eax, edi
mov edi, dword [esp + 0x64]
sub edx, edi
dec edx
sar edx, 5
sar ecx, 0x1f
sub edx, ecx
lea ecx, [edx + 1]
mov ebp, dword [esp + 0x100]
sub ebp, ecx
imul edx, edx, 0x3c
lea ecx, [edi + edx + 0x3c]
cmp ecx, 0x3c
jl 0x476b51
mov edx, eax
mov eax, 0x88888889
mov edi, edx
imul ecx
add edx, ecx
sar edx, 5
mov eax, ecx
sar ecx, 0x1f
sub edx, ecx
lea ecx, [edx + ebp]
imul edx, edx, 0x3c
sub eax, edx
mov dword [esp + 0x48], eax
test ecx, ecx
jge 0x476b43
mov dword [esp + 0x68], ecx
neg ecx
dec ecx
mov eax, 0x88888889
imul ecx
mov eax, edi
mov edi, dword [esp + 0x68]
sub edx, edi
dec edx
sar edx, 5
sar ecx, 0x1f
sub edx, ecx
lea ecx, [edx + 1]
mov ebp, dword [esp + 0xfc]
sub ebp, ecx
imul edx, edx, 0x3c
lea ecx, [edi + edx + 0x3c]
cmp ecx, 0x3c
jl 0x476b38
mov edx, eax
mov eax, 0x88888889
mov edi, edx
imul ecx
add edx, ecx
mov eax, ecx
sar ecx, 0x1f
sar edx, 5
sub edx, ecx
lea ecx, [edx + ebp]
imul edx, edx, 0x3c
sub eax, edx
mov dword [esp + 0x50], eax
test ecx, ecx
jge 0x476b2a
mov dword [esp + 0x60], ecx
neg ecx
dec ecx
mov eax, 0xaaaaaaab
imul ecx
mov eax, edi
mov edi, dword [esp + 0x60]
sub edx, edi
sar ecx, 0x1f
dec edx
sar edx, 4
sub edx, ecx
lea ecx, [edx + 1]
mov ebp, dword [esp + 0xf8]
sub ebp, ecx
lea ecx, [edx + edx*2]
lea ecx, [edi + ecx*8 + 0x18]
mov dword [esp + 0x4c], esi
mov dword [esp + 0xac], eax
cmp ecx, 0x18
jl 0x476b21
mov eax, 0xaaaaaaab
imul ecx
add edx, ecx
mov eax, ecx
sar ecx, 0x1f
sar edx, 4
sub edx, ecx
lea ecx, [edx + ebp]
lea edx, [edx + edx*2]
shl edx, 3
sub eax, edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], eax
mov edx, ebx
add ebx, 0xd116ebf
mov dword [esp + 0x30], ebx
mov dword [esp], ebx
mov ebp, edx
sar edx, 0x1f
add ebp, 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.00448b10
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, 0x23ab1
mov edi, edx
mul ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x5c], ecx
mov dword [esp], ebx
imul ecx, ecx, 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.00448b10
mov eax, dword [esp + 0x10]
mov ecx, 0x64
mov ebx, eax
mul ecx
mov ecx, dword [esp + 0x30]
mov ebp, ecx
sub ecx, eax
mov esi, eax
mov eax, ebx
mov edi, 0x8eac
mov ebx, edx
mul edi
mov dword [esp + 0xa0], edx
mov dword [esp + 0x9c], eax
mov edi, dword [esp + 0x6c]
add eax, edi
mov dword [esp + 0x98], eax
mov edi, dword [esp + 0x14]
mov dword [esp + 0x94], edi
imul edi, edi, 0x64
add ebx, edi
sub ebp, esi
mov ebp, dword [esp + 0xa8]
sbb ebp, ebx
mov ebx, ecx
shr ecx, 2
mov esi, ebp
shl ebp, 0x1e
or ebp, ecx
mov ecx, ebp
shl ebp, 2
mov dword [esp + 0x90], ebp
mov edi, ebx
sub ebx, ebp
mov eax, ecx
mov ebp, 0x5b5
mul ebp
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], eax
mov ebp, dword [esp + 0x98]
add eax, ebp
mov dword [esp + 0x84], eax
mov eax, 0x16d
mul ebx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0x84]
add eax, ebx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x5c]
imul eax, eax, 0x23ab1
mov ebx, dword [esp + 0xa4]
add eax, ebx
mov ebx, dword [esp + 0x94]
imul ebx, ebx, 0x8eac
mov edx, dword [esp + 0xa0]
add edx, ebx
mov ebx, dword [esp + 0x9c]
mov ebp, dword [esp + 0x6c]
add ebx, ebp
adc eax, edx
mov edx, esi
shr esi, 2
mov ebx, esi
shl esi, 2
shr ecx, 0x1e
or ecx, esi
mov ebp, dword [esp + 0x90]
sub edi, ebp
sbb edx, ecx
imul ebx, ebx, 0x5b5
mov ecx, dword [esp + 0x8c]
add ecx, ebx
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x98]
add ebx, ebp
adc ecx, eax
imul edx, edx, 0x16d
mov eax, dword [esp + 0x80]
add eax, edx
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x84]
add edx, ebx
adc eax, ecx
mov ecx, dword [esp + 0x4c]
cmp ecx, 0xd
jae 0x476b96
lea edx, [0x9c48e0]
mov edx, dword [edx + ecx*4]
mov ebx, dword [esp + 0x78]
mov ebp, ebx
add ebx, edx
mov esi, edx
sar edx, 0x1f
add ebp, esi
adc eax, edx
mov edx, dword [esp + 0x2c]
mov ebp, edx
sar edx, 0x1f
mov esi, edx
shr edx, 0x1e
add edx, ebp
sar edx, 2
shl edx, 2
mov edi, ebp
sub ebp, edx
test ebp, ebp
jne 0x476b18
mov edx, eax
mov eax, 0x51eb851f
mov ebp, edx
imul edi
mov eax, edx
sar edx, 5
sub edx, esi
imul edx, edx, 0x64
sub edi, edx
test edi, edi
je 0x476afd
mov eax, 1
test al, al
je 0x476837
inc ecx
cmp ecx, 3
jl 0x476837
add ebx, 1
adc ebp, 0
mov ecx, dword [esp + 0x58]
dec ecx
mov dword [esp + 0x74], ecx
mov edx, ebx
add ebx, ecx
mov eax, ebx
mov esi, 0x15180
mov ebx, edx
mul esi
mov dword [esp + 0x70], eax
mov esi, dword [esp + 0x54]
imul esi, esi, 0xe10
mov edi, dword [esp + 0x50]
imul edi, edi, 0x3c
add esi, edi
mov edi, dword [esp + 0x48]
add esi, edi
add eax, esi
mov dword [esp + 0xa4], eax
add eax, 0xe5263700
mov dword [esp + 0x34], eax
mov edi, dword [esp + 0x10c]
mov dword [esp], edi
mov dword [esp + 4], eax
sar ecx, 0x1f
mov edi, dword [esp + 0x74]
add ebx, edi
adc ecx, ebp
imul ecx, ecx, 0x15180
add ecx, edx
mov edx, esi
sar esi, 0x1f
mov ebx, dword [esp + 0x70]
add ebx, edx
adc ecx, esi
mov edx, dword [esp + 0xa4]
add edx, 0xe5263700
adc ecx, 0x80000001
mov dword [esp + 0x38], ecx
mov dword [esp + 8], ecx
call fcn.00477500
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
test ecx, ecx
je 0x476af0
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], ebx
mov eax, ebp
mov ebp, dword [esp + 0x34]
mov edi, ebp
sub ebp, ecx
sar ecx, 0x1f
mov ebx, dword [esp + 0x44]
sub edi, ebx
mov edi, ebx
mov ebx, dword [esp + 0x38]
sbb ebx, ecx
cmp ebx, edx
sete cl
mov edx, dword [esp + 0x3c]
cmp ebp, edx
setb dl
and ecx, edx
mov edx, dword [esp + 0x40]
cmp ebx, edx
setl dl
or ecx, edx
test cl, cl
jne 0x476ac2
cmp ebx, eax
sete cl
cmp ebp, esi
setae dl
and edx, ecx
cmp ebx, eax
setg cl
or edx, ecx
test dl, dl
jne 0x476aa2
mov ecx, dword [esp + 0x34]
mov edx, ecx
sub ecx, edi
mov ebx, edi
sar edi, 0x1f
sub edx, ebx
mov edx, dword [esp + 0x38]
sbb edx, edi
mov ebx, ecx
add ecx, 0x7791f700
mov dword [esp + 0xa4], ecx
lea edi, [esp + 0xb0]
xor eax, eax
call fcn.0044d9bb
lea edi, [esp + 0xd8]
call fcn.0044d9bb
mov ecx, dword [esp + 0xac]
mov dword [esp + 0xd8], ecx
sar ecx, 0x1f
mov dword [esp + 0xdc], ecx
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xe0], ecx
add ebx, 0x7791f700
adc edx, 0xe
mov dword [esp + 0xe4], edx
mov ecx, dword [0x9ee208]
mov dword [esp + 0xe8], ecx
lea edi, [esp + 0xb0]
lea esi, [esp + 0xd8]
call fcn.0044de9e
lea edi, [esp + 0xc4]
lea esi, [esp + 0xb0]
call fcn.0044de9e
mov ecx, dword [esp + 0x10c]
lea edx, [0x9f12e0]
cmp ecx, edx
jne 0x476a9b
xor eax, eax
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0xc4]
mov ebx, ecx
shr ecx, 0x1f
shl ecx, 0x1f
test ecx, ecx
je 0x476a7a
shl ebx, 1
mov ecx, edx
shr edx, 0x1f
or edx, ebx
shl ecx, 1
shr ecx, 0x1f
mov ebx, edx
shl edx, 1
or edx, ecx
mov ecx, edx
add edx, 0xd7b17f80
mov dword [esp + 0xcc], edx
shr ebx, 0x1f
add ecx, 0xd7b17f80
adc ebx, 0xd
mov dword [esp + 0xd0], ebx
mov ecx, dword [esp + 0xc4]
and ecx, 0x3fffffff
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], 0
mov dword [esp + 0xd4], eax
lea edi, [esp + 0x110]
lea esi, [esp + 0xc4]
call fcn.0044de9e
add esp, 0xec
ret
mov eax, ecx
jmp 0x476a0b
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], eax
call fcn.00477500
mov edi, dword [esp + 0x14]
jmp 0x47694d
mov eax, dword [esp + 0x3c]
add eax, 0xffffffff
mov ecx, dword [esp + 0x10c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
adc eax, 0xffffffff
mov dword [esp + 8], eax
call fcn.00477500
mov edi, dword [esp + 0x14]
jmp 0x47694d
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x476962
sar eax, 7
sub eax, esi
imul eax, eax, 0x190
mov edx, dword [esp + 0x2c]
sub edx, eax
test edx, edx
sete al
jmp 0x476827
mov ebp, eax
xor eax, eax
jmp 0x476827
mov eax, ecx
mov ecx, ebp
jmp 0x4765b9
mov eax, edi
mov ebp, dword [esp + 0xf8]
jmp 0x476587
mov edi, eax
mov eax, ecx
mov ecx, ebp
jmp 0x476549
mov eax, edi
mov ebp, dword [esp + 0xfc]
jmp 0x476521
mov edi, eax
mov eax, ecx
mov ecx, ebp
jmp 0x4764e3
mov ebp, dword [esp + 0x100]
jmp 0x4764bb
mov ebp, eax
mov eax, edx
jmp 0x47647f
mov eax, ecx
mov ecx, dword [esp + 0x104]
jmp 0x476454
mov ebx, ebp
mov esi, edx
jmp 0x476414
mov edx, ebx
mov ebp, dword [esp + 0xf0]
jmp 0x4763eb
call fcn.00426960
ud2
lea eax, [0x744900]
mov dword [esp], eax
lea eax, [0x7ffca8]
mov dword [esp + 4], eax
call fcn.004277b0
ud2
call fcn.0044be50
jmp fcn.00476370