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

Disassembly:
mov eax, dword [esp + 0x14]
sub esp, 0xd4
push ebx
mov ebx, dword [esp + 0xe4]
push ebp
push esi
push edi
xor edi, edi
dec eax
cmp eax, 4
mov edx, 1
jl 0x4751c1
mov eax, 4
sub eax, ebx
mov dword [esp + 0x18], eax
mov eax, 0xc
sub eax, ebx
mov dword [esp + 0x1c], eax
mov ebp, 0xfffffffc
mov eax, 0xfffffff4
xor esi, esi
sub ebp, ebx
sub eax, ebx
lea ecx, [ebx + 0x14]
mov dword [esp + 0x50], eax
fld dword [ecx - 8]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x47516a
mov eax, dword [esp + 0x50]
mov edi, edx
lea esi, [eax + ecx]
fld dword [ecx]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x47517d
lea edi, [edx + 1]
lea esi, [ecx + ebp]
fld dword [ecx + 8]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x475195
mov eax, dword [esp + 0x18]
lea edi, [edx + 2]
lea esi, [eax + ecx]
fld dword [ecx + 0x10]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x4751ad
mov eax, dword [esp + 0x1c]
lea edi, [edx + 3]
lea esi, [eax + ecx]
mov eax, dword [esp + 0xf8]
add edx, 4
add eax, 0xfffffffd
add ecx, 0x20
cmp edx, eax
jl 0x475153
mov eax, dword [esp + 0xf8]
cmp edx, eax
jge 0x4751fe
lea esi, [edi*8]
lea ecx, [ebx + edx*8 + 4]
mov ebp, eax
lea esp, [esp]
fld dword [ecx]
fcomp dword [esi + ebx + 4]
fnstsw ax
test ah, 5
jp 0x4751f6
mov edi, edx
lea esi, [edx*8]
inc edx
add ecx, 8
cmp edx, ebp
jl 0x4751e0
mov ecx, dword [esp + 0xf8]
lea eax, [edi - 1]
test eax, eax
jge 0x475210
add eax, ecx
jmp 0x475216
cmp eax, ecx
jl 0x475216
sub eax, ecx
mov edx, eax
fld dword [ebx + edx*8]
mov dword [esp + 0x10], eax
call fcn.00462760
fld dword [ebx + edi*8]
mov esi, eax
call fcn.00462760
mov ecx, dword [esp + 0x10]
fld dword [ebx + ecx*8 + 4]
mov ebp, eax
fsub dword [ebx + edi*8 + 4]
lea eax, [ebx + edi*8 + 4]
mov dword [esp + 0x18], eax
call fcn.00462760
cmp ebp, esi
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], ebp
jle 0x47526b
mov ecx, ebp
sub ecx, esi
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x68], 0xffffffff
jmp 0x475279
sub esi, ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], 1
mov edx, dword [esp + 0xf4]
mov ecx, dword [esp + 0x10]
mov ebx, dword [edx + edi*8]
mov ecx, dword [edx + ecx*8]
cmp ebx, ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ebx
jle 0x4752c0
mov esi, ebx
sub esi, ecx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x98], 0xffffffff
jmp 0x4752d4
sub ecx, ebx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x98], 1
mov ecx, dword [esp + 0x10]
mov esi, dword [edx + edi*8 + 4]
mov ecx, dword [edx + ecx*8 + 4]
cmp esi, ecx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], esi
jle 0x475313
mov edx, esi
sub edx, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x80], 0xffffffff
jmp 0x475324
sub ecx, esi
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], 1
inc edi
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
jns 0x47533a
mov edx, dword [esp + 0xf8]
add edi, edx
jmp 0x475347
mov eax, dword [esp + 0xf8]
cmp edi, eax
jl 0x475347
sub edi, eax
mov eax, dword [esp + 0xf0]
mov ecx, edi
fld dword [eax + ecx*8]
mov dword [esp + 0x14], edi
call fcn.00462760
mov edx, dword [esp + 0xf0]
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x14]
fld dword [edx + eax*8 + 4]
fsub dword [ecx]
call fcn.00462760
cmp ebp, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], ebp
jle 0x475398
sub ebp, edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], 0xffffffff
jmp 0x4753a6
sub edi, ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], 1
mov edx, dword [esp + 0xf4]
mov edi, dword [esp + 0x14]
mov ecx, dword [edx + edi*8]
xor ebp, ebp
cmp ebx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebx
jle 0x4753da
sub ebx, ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x4c], 0xffffffff
jmp 0x4753e8
sub ecx, ebx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], 1
mov ecx, dword [edx + edi*8 + 4]
cmp esi, ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x9c], ebp
mov dword [esp + 0xa0], esi
jle 0x47541c
sub esi, ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xb0], 0xffffffff
jmp 0x475430
sub ecx, esi
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb0], 1
mov edx, dword [esp + 0x18]
fld dword [edx]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
call fcn.00462760
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
cmp ecx, eax
jl 0x475586
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0xf8]
lea eax, [ebx - 1]
test eax, eax
jge 0x475473
add eax, ecx
jmp 0x475479
cmp eax, ecx
jl 0x475479
sub eax, ecx
mov ebp, dword [esp + 0xf0]
mov edx, eax
fld dword [ebp + edx*8]
mov dword [esp + 0x10], eax
call fcn.00462760
fld dword [ebp + ebx*8]
mov edi, eax
call fcn.00462760
mov esi, eax
mov eax, dword [esp + 0x10]
fld dword [ebp + eax*8 + 4]
fsub dword [ebp + ebx*8 + 4]
call fcn.00462760
xor ebp, ebp
cmp esi, edi
mov dword [esp + 0x54], ebp
mov dword [esp + 0x58], esi
jle 0x4754cb
sub esi, edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x68], 0xffffffff
jmp 0x4754d9
sub edi, esi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x68], 1
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x10]
mov ecx, dword [esi + ebx*8]
mov edx, dword [esi + edi*8]
cmp ecx, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x84], ebp
mov dword [esp + 0x88], ecx
jle 0x47551a
sub ecx, edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x98], 0xffffffff
jmp 0x47552e
sub edx, ecx
mov dword [esp + 0x8c], edx
mov dword [esp + 0x98], 1
mov ecx, dword [esi + ebx*8 + 4]
mov edx, dword [esi + edi*8 + 4]
cmp ecx, edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], ecx
jle 0x475563
sub ecx, edx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x80], 0xffffffff
jmp 0x475574
sub edx, ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x80], 1
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
cmp ebx, dword [esp + 0x14]
je 0x4756c2
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x2c]
jl 0x4756cd
mov eax, dword [esp + 0x14]
mov ebx, eax
inc eax
jns 0x4755a8
mov edx, dword [esp + 0xf8]
add eax, edx
jmp 0x4755b5
mov ecx, dword [esp + 0xf8]
cmp eax, ecx
jl 0x4755b5
sub eax, ecx
mov ebp, dword [esp + 0xf0]
fld dword [ebp + eax*8]
mov dword [esp + 0x14], eax
call fcn.00462760
fld dword [ebp + ebx*8]
mov edi, eax
call fcn.00462760
mov ecx, dword [esp + 0x14]
fld dword [ebp + ecx*8 + 4]
mov esi, eax
fsub dword [ebp + ebx*8 + 4]
call fcn.00462760
cmp esi, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], esi
jle 0x475607
sub esi, edi
mov dword [esp + 0x28], esi
mov dword [esp + 0x34], 0xffffffff
jmp 0x475615
sub edi, esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], 1
mov esi, dword [esp + 0xf4]
mov edi, dword [esp + 0x14]
mov ecx, dword [esi + ebx*8]
mov edx, dword [esi + edi*8]
cmp ecx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], ecx
jle 0x47564e
sub ecx, edx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x4c], 0xffffffff
jmp 0x47565c
sub edx, ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], 1
mov ecx, dword [esi + ebx*8 + 4]
mov edx, dword [esi + edi*8 + 4]
cmp ecx, edx
mov ebp, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], ecx
jle 0x47569a
sub ecx, edx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xb0], 0xffffffff
jmp 0x4756ae
sub edx, ecx
mov dword [esp + 0xa4], edx
mov dword [esp + 0xb0], 1
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], eax
cmp ebx, dword [esp + 0x10]
jne 0x4756d1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
mov ebp, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x30]
jl 0x475994
mov edi, dword [esp + 0xe8]
cmp eax, dword [edi + 4]
jge 0x475994
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x58]
mov edx, dword [esp + 0x88]
mov eax, edi
sub eax, ebp
cmp edx, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0xd0], edx
jle 0x475730
mov ecx, edx
sub ecx, ebx
mov dword [esp + 0xe0], 0xffffffff
jmp 0x47573f
mov ecx, ebx
sub ecx, edx
mov dword [esp + 0xe0], 1
mov edx, dword [esp + 0x70]
mov esi, dword [esp + 0xa0]
cmp edx, esi
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xdc], eax
mov dword [esp + 0xb8], edx
jle 0x475774
mov ecx, edx
sub ecx, esi
mov dword [esp + 0xc8], 0xffffffff
jmp 0x475783
mov ecx, esi
sub ecx, edx
mov dword [esp + 0xc8], 1
cmp ebp, edi
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 0x1c], ebp
jge 0x47597e
mov ebp, dword [esp + 0xfc]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0xb8]
mov edx, dword [esp + 0xdc]
mov ecx, eax
mov eax, dword [esp + 0x50]
lea esp, [esp]
test edi, edi
jl 0x4758fa
mov ebx, dword [esp + 0xe8]
cmp edi, dword [ebx]
jge 0x4758fa
mov esi, dword [esp + 0x1c]
mov eax, ebx
mov edx, dword [eax + 8]
imul edx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
add edx, esi
lea esi, [eax + edx*4]
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 8]
imul ecx, dword [esp + 0xb8]
add ecx, dword [esp + 0xd0]
mov edx, dword [eax + 0xc]
movzx eax, byte [edx + ecx*4 + 3]
lea edi, [edx + ecx*4]
movzx ecx, byte [ebp + 0xc]
movzx ebx, byte [esi]
imul eax, ecx
mov ecx, dword [ebp]
add eax, 0x80
mov edx, eax
sar edx, 8
add edx, eax
movzx eax, byte [edi]
sub eax, ebx
add eax, ecx
sar edx, 8
imul eax, edx
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x475859
mov ecx, 0xff
mov eax, ecx
jmp 0x475863
test ecx, ecx
jle 0x475861
mov eax, ecx
jmp 0x475863
xor eax, eax
movzx ebx, byte [esi + 1]
mov byte [esi], al
movzx eax, byte [edi + 1]
add eax, dword [ebp + 4]
sub eax, ebx
imul eax, edx
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x475897
mov ecx, 0xff
mov eax, ecx
jmp 0x4758a1
test ecx, ecx
jle 0x47589f
mov eax, ecx
jmp 0x4758a1
xor eax, eax
movzx ebx, byte [esi + 2]
mov byte [esi + 1], al
movzx eax, byte [edi + 2]
add eax, dword [ebp + 8]
sub eax, ebx
imul eax, edx
add eax, 0x80
mov ecx, eax
sar ecx, 8
add ecx, eax
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x4758d4
mov ecx, 0xff
jmp 0x4758da
test ecx, ecx
jg 0x4758da
xor ecx, ecx
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0xdc]
mov byte [esi + 2], cl
mov ecx, dword [esp + 0xc4]
mov esi, dword [esp + 0xb8]
add edx, dword [esp + 0xd4]
cmp edx, eax
mov dword [esp + 0xdc], edx
jle 0x475934
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0xe0]
sub edx, eax
add edi, ebx
cmp edx, eax
jg 0x475913
mov dword [esp + 0xd0], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0xdc], edx
add ecx, dword [esp + 0xbc]
cmp ecx, eax
mov dword [esp + 0xc4], ecx
jle 0x47596d
jmp 0x475950
mov ebx, dword [esp + 0xc8]
sub ecx, eax
add esi, ebx
cmp ecx, eax
jg 0x475950
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xb8], esi
mov ebx, dword [esp + 0x24]
inc edi
cmp edi, ebx
mov dword [esp + 0x1c], edi
jl 0x4757c0
emms
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x64]
add eax, dword [esp + 0x5c]
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x64], eax
jle 0x4759c6
jmp 0x4759b0
mov edi, dword [esp + 0x68]
add dword [esp + 0x58], edi
mov edi, dword [esp + 0x60]
sub eax, edi
cmp eax, edi
jg 0x4759b0
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
mov edi, dword [esp + 0x8c]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x94]
add eax, edi
cmp eax, dword [esp + 0x90]
mov dword [esp + 0x94], eax
jle 0x475a12
nop
mov edi, dword [esp + 0x98]
add dword [esp + 0x88], edi
mov edi, dword [esp + 0x90]
sub eax, edi
cmp eax, edi
jg 0x4759f0
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x74]
inc eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x7c]
add eax, edi
cmp eax, dword [esp + 0x78]
mov dword [esp + 0x7c], eax
jle 0x475a59
jmp 0x475a40
mov edi, dword [esp + 0x80]
add dword [esp + 0x70], edi
mov edi, dword [esp + 0x78]
sub eax, edi
cmp eax, edi
jg 0x475a40
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
add ecx, dword [esp + 0x28]
inc eax
cmp ecx, edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], ecx
jle 0x475a86
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x34]
sub ecx, edx
add eax, edi
cmp ecx, edx
jg 0x475a72
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], eax
mov edx, dword [esp + 0x20]
add ebp, dword [esp + 0x40]
inc edx
cmp ebp, esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x48], ebp
jle 0x475ab4
jmp 0x475aa0
mov edx, dword [esp + 0x4c]
sub ebp, esi
add ebx, edx
cmp ebp, esi
jg 0x475aa0
mov dword [esp + 0x48], ebp
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0xac]
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
add eax, esi
inc edi
cmp eax, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0xac], eax
jle 0x475b06
mov edx, dword [esp + 0xa0]
mov esi, dword [esp + 0xb0]
lea ecx, [ecx]
sub eax, ecx
add edx, esi
cmp eax, ecx
jg 0x475af0
mov dword [esp + 0xac], eax
mov dword [esp + 0xa0], edx
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x9c], ecx
inc eax
jmp 0x475449