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

Disassembly:
push 0xffffffffffffffff
push 0x4a6448
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push ebx
push ebp
push esi
push edi
xor ebp, ebp
mov ebx, 0x7fff
mov edi, 0xffff8001
mov esi, ecx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x44], ebp
mov word [esp + 0x14], bx
mov word [esp + 0x16], bx
mov word [esp + 0x18], di
mov word [esp + 0x1a], di
mov dword [esp + 0x84], ebp
mov word [esp + 0x1c], bx
mov word [esp + 0x1e], bx
mov word [esp + 0x20], di
mov word [esp + 0x22], di
push 0x80
push ebp
lea ecx, [esp + 0x3c]
mov byte [esp + 0x8c], 1
call fcn.00439d40
mov eax, dword [esp + 0x8c]
mov byte [esp + 0x84], 2
lea ecx, [eax + 0x5c]
mov dword [esp + 0x60], ecx
mov edx, dword [ecx]
mov dword [esp + 0x64], edx
mov eax, dword [ecx]
cmp eax, ebp
je 0x475f6f
mov eax, dword [eax + 4]
jmp 0x475f71
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x68], eax
je 0x475f7e
mov edx, dword [eax + 4]
jmp 0x475f80
xor edx, edx
cmp eax, ebp
mov dword [esp + 0x6c], edx
mov dword [esp + 0x74], ebp
mov byte [esp + 0x70], 0
mov byte [esp + 0x71], 0
mov dword [esi + 8], ebp
mov word [esi + 2], bx
mov word [esi + 4], di
mov word [esi], bp
mov byte [esi + 0xe], 0
je 0x475fae
mov dword [esp + 0x74], eax
jmp 0x475fb3
mov byte [esp + 0x71], 1
mov byte [esp + 0x78], 0
cmp dword [ecx], ebp
je 0x476089
cmp eax, dword [esp + 0x74]
jne 0x475fd2
mov cl, byte [esp + 0x78]
test cl, cl
jne 0x476089
mov ecx, dword [eax + 0x70]
lea edi, [eax + 0x70]
cmp ecx, ebp
je 0x476073
inc word [esi]
push 1
fld dword [eax + 0x2c]
fadd qword [0x4a8220]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
movsx eax, ax
push eax
lea ecx, [esp + 0x3c]
call fcn.00439e30
mov eax, edi
mov dword [esp + 0x44], eax
mov ecx, dword [eax]
mov dword [esp + 0x48], ecx
mov eax, dword [eax]
cmp eax, ebp
je 0x476025
mov eax, dword [eax]
jmp 0x476027
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x4c], eax
je 0x476033
mov ecx, dword [eax]
jmp 0x476035
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], ebp
mov byte [esp + 0x5c], 0
mov byte [esp + 0x54], 0
mov byte [esp + 0x55], 0
mov di, word [eax + 8]
push 0xffffffffffffffff
lea ecx, [esp + 0x48]
call fcn.00440430
cmp word [esi + 2], di
mov ax, word [eax + 0xc]
jle 0x476069
mov word [esi + 2], di
cmp word [esi + 4], ax
jge 0x476073
mov word [esi + 4], ax
lea ecx, [esp + 0x60]
call fcn.00440e40
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x60]
jmp 0x475fb8
cmp word [esi], 3
jl 0x476401
mov dx, word [esi + 2]
cmp dx, word [esi + 4]
jge 0x476401
lea ecx, [esp + 0x34]
call fcn.0043a070
fadd qword [0x4a8220]
sub esp, 8
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
call sub.MSVCRT.dll__ftol
movsx eax, ax
cdq
sub eax, edx
movsx edx, word [esi + 2]
mov ecx, eax
movsx eax, word [esi + 4]
sar ecx, 1
mov word [esi + 6], cx
sub eax, edx
movsx ecx, cx
cdq
idiv ecx
movsx edx, ax
mov word [esi + 0xc], ax
lea eax, [edx + edx + 2]
push eax
call fcn.00442a90
mov dword [esi + 8], eax
add esp, 0xc
xor eax, eax
cmp word [esi + 0xc], bp
jl 0x47610f
mov edx, dword [esi + 8]
movsx ecx, ax
inc eax
mov word [edx + ecx*2], bp
cmp ax, word [esi + 0xc]
jle 0x4760fe
mov eax, dword [esp + 0x68]
cmp eax, ebp
je 0x47611d
mov dword [esp + 0x74], eax
jmp 0x476122
mov byte [esp + 0x71], 1
mov byte [esp + 0x78], 0
mov ecx, dword [esp + 0x60]
cmp dword [ecx], ebp
je 0x47636a
cmp eax, dword [esp + 0x74]
jne 0x476145
mov cl, byte [esp + 0x78]
test cl, cl
jne 0x47636a
mov edi, eax
mov dword [esp + 0x10], edi
mov ecx, dword [edi + 0x70]
lea eax, [edi + 0x70]
cmp ecx, ebp
je 0x476358
mov dword [esp + 0x44], eax
mov edx, dword [eax]
mov dword [esp + 0x48], edx
mov eax, dword [eax]
cmp eax, ebp
je 0x47616d
mov eax, dword [eax]
jmp 0x47616f
xor eax, eax
cmp eax, ebp
mov dword [esp + 0x4c], eax
je 0x47617b
mov ecx, dword [eax]
jmp 0x47617d
xor ecx, ecx
cmp eax, ebp
mov dword [esp + 0x50], ecx
mov dword [esp + 0x58], ebp
mov byte [esp + 0x54], 0
mov byte [esp + 0x55], 0
je 0x476199
mov dword [esp + 0x58], eax
jmp 0x47619e
mov byte [esp + 0x55], 1
lea eax, [esp + 0x44]
lea ecx, [esp + 0x24]
push eax
push ecx
mov byte [esp + 0x64], 0
call fcn.004281b0
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov al, byte [0x4dc508]
mov dword [esp + 0x20], edx
add esp, 8
mov edx, ecx
mov dword [esp + 0x14], ecx
test al, al
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], ebx
je 0x476231
mov dx, word [esi + 2]
sub ecx, edx
movsx eax, cx
mov dword [esp + 0x8c], eax
fild dword [esp + 0x8c]
fld dword [edi + 0x2c]
fmul qword [0x4dc4e8]
fcompp
fnstsw ax
test ah, 1
je 0x476231
cmp cx, 2
jle 0x476231
movsx eax, word [esp + 0x14]
movsx ecx, dx
sub eax, ecx
movsx ecx, word [esi + 6]
cdq
idiv ecx
cmp ax, bp
jl 0x476231
movsx edx, ax
xor ecx, ecx
inc edx
mov eax, dword [esi + 8]
add eax, ecx
add ecx, 2
inc word [eax]
dec edx
jne 0x476223
mov ecx, dword [esp + 0x44]
cmp dword [ecx], ebp
je 0x4762f5
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x58]
cmp edx, eax
jne 0x476255
mov al, byte [esp + 0x5c]
test al, al
jne 0x4762f5
lea eax, [esp + 0x44]
lea ecx, [esp + 0x2c]
push eax
push ecx
call fcn.004281b0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp + 0x1c], ecx
sub ecx, ebx
movsx eax, cx
mov dword [esp + 0x94], eax
add esp, 8
fild dword [esp + 0x8c]
fld dword [edi + 0x2c]
fmul qword [0x4dc4e8]
mov dword [esp + 0x18], edx
fcompp
fnstsw ax
test ah, 1
je 0x4762da
cmp cx, 2
jle 0x4762da
movsx ecx, word [esi + 2]
movsx eax, word [esp + 0x14]
movsx edi, word [esi + 6]
sub eax, ecx
cdq
idiv edi
mov ebp, eax
movsx eax, bx
sub eax, ecx
cdq
idiv edi
cmp ax, bp
jg 0x4762da
movsx eax, ax
movsx ecx, bp
sub ecx, eax
lea edx, [eax + eax]
inc ecx
mov eax, dword [esi + 8]
add eax, edx
add edx, 2
inc word [eax]
dec ecx
jne 0x4762cc
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
xor ebp, ebp
jmp 0x476231
mov al, byte [0x4dc508]
test al, al
je 0x476358
mov cx, word [esi + 4]
sub cx, bx
movsx edx, cx
mov dword [esp + 0x8c], edx
fild dword [esp + 0x8c]
fld dword [edi + 0x2c]
fmul qword [0x4dc4e8]
fcompp
fnstsw ax
test ah, 1
je 0x476358
cmp cx, 2
jle 0x476358
movsx ecx, word [esi + 2]
movsx eax, bx
sub eax, ecx
movsx ecx, word [esi + 6]
cdq
idiv ecx
cmp ax, word [esi + 0xc]
jg 0x476358
mov ecx, dword [esi + 8]
movsx edx, ax
inc word [ecx + edx*2]
inc eax
cmp ax, word [esi + 0xc]
lea ecx, [ecx + edx*2]
jle 0x476344
lea ecx, [esp + 0x60]
call fcn.00440e40
mov eax, dword [esp + 0x68]
jmp 0x476127
mov bp, word [esi + 0xc]
xor ebx, ebx
test bp, bp
jl 0x4763e2
movsx eax, word [esi]
mov ecx, dword [esi + 8]
movsx edi, bx
cdq
sub eax, edx
movsx edx, word [ecx + edi*2]
sar eax, 1
cmp edx, eax
jle 0x4763d8
mov dl, byte [0x4dc4f8]
test dl, dl
je 0x4763d4
test bx, bx
jne 0x4763a2
movsx edx, word [ecx + 2]
cmp edx, eax
jle 0x4763cc
cmp bx, bp
jne 0x4763b0
movsx edx, word [ecx + edi*2 - 2]
cmp edx, eax
jle 0x4763cc
test bx, bx
jle 0x4763d4
cmp bx, bp
jge 0x4763d4
movsx edx, word [ecx + edi*2 - 2]
cmp edx, eax
jg 0x4763d4
movsx edx, word [ecx + edi*2 + 2]
cmp edx, eax
jg 0x4763d4
mov word [ecx + edi*2], 0
jmp 0x4763d8
mov byte [esi + 0xe], 1
mov bp, word [esi + 0xc]
inc ebx
cmp bx, bp
jle 0x476375
mov al, byte [0x4dc518]
test al, al
je 0x47640c
mov al, byte [esi + 0xe]
test al, al
je 0x47640c
push 0x4c4784
call fcn.00443600
add esp, 4
jmp 0x47640c
mov word [esi], bp
mov word [esi + 4], bp
mov word [esi + 2], bp
lea ecx, [esp + 0x34]
mov byte [esp + 0x84], 1
call fcn.00439e10
mov ecx, dword [esp + 0x7c]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x78
ret 4