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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a49d9
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x7c
push ebx
push esi
mov esi, ecx
xor ebx, ebx
mov ecx, 0x7fff
mov eax, 0xffff8001
mov dword [esi], ebx
mov word [esi + 4], cx
mov word [esi + 6], cx
push edi
mov dword [esp + 0x58], esi
mov word [esi + 8], ax
mov word [esi + 0xa], ax
mov dword [esp + 0x90], ebx
mov word [esi + 0xe], bx
mov word [esi + 0xc], bx
mov word [esi + 0x16], bx
mov dword [esi + 0x18], ebx
mov word [esp + 0x68], cx
mov word [esp + 0x6a], cx
mov word [esp + 0x6c], ax
mov word [esp + 0x6e], ax
mov word [esp + 0x26], bx
mov word [esp + 0x24], bx
mov word [esp + 0x22], bx
mov word [esp + 0x20], bx
mov word [esp + 0x1a], bx
mov word [esp + 0x18], bx
mov eax, dword [ebp + 8]
mov byte [esp + 0x90], 6
mov ax, word [eax + 0x14]
shl ax, 1
mov word [esi + 0x14], ax
movsx eax, ax
add eax, 3
cdq
and edx, 3
add eax, edx
sar eax, 2
push eax
call fcn.00442a90
mov edi, eax
add esp, 4
movsx eax, word [esi + 0x14]
add eax, 3
mov dword [esi + 0x10], edi
cdq
and edx, 3
add eax, edx
mov ecx, eax
xor eax, eax
sar ecx, 2
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
xor ecx, ecx
mov dword [esp + 0x34], ecx
jmp 0x42c760
mov ecx, dword [esp + 0x34]
xor ebx, ebx
mov eax, ecx
neg eax
sbb eax, eax
and al, 0xe0
add eax, 0x20
movsx eax, ax
and eax, 0x8000007f
jns 0x42c77a
dec eax
or eax, 0xffffff80
inc eax
cmp ax, bx
mov dword [esp + 0x38], eax
jge 0x42c78c
add eax, 0x80
mov dword [esp + 0x38], eax
neg ecx
sbb ecx, ecx
and ecx, 0x20
movsx eax, cx
and eax, 0x8000007f
jns 0x42c7a2
dec eax
or eax, 0xffffff80
inc eax
cmp ax, bx
mov dword [esp + 0x2c], eax
jge 0x42c7b4
add eax, 0x80
mov dword [esp + 0x2c], eax
mov ecx, dword [ebp + 8]
sub esp, 8
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
movsx edx, word [esp + 0x2c]
movsx eax, word [esp + 0x2e]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
mov dword [esp + 0x38], eax
fmul dword [ebp + 0xc]
fld dword [ebp + 0x10]
fimul dword [esp + 0x38]
fsubp st(1)
fadd qword [0x4a8220]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
call sub.MSVCRT.dll__ftol
movsx ecx, word [esp + 0x28]
fld dword [ebp + 0x10]
movsx edx, word [esp + 0x2a]
mov dword [esp + 0x38], ecx
mov edi, eax
fimul dword [esp + 0x38]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fmul dword [ebp + 0xc]
faddp st(1)
fadd qword [0x4a8220]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov word [esp + 0x22], ax
mov word [esp + 0x20], di
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x78]
push eax
push eax
mov dword [esi + 0xc], eax
call fcn.004383d0
mov ecx, dword [eax]
mov dword [esp + 0x30], 0
mov dword [esi + 4], ecx
mov edx, dword [eax + 4]
mov eax, dword [ebp + 8]
mov dword [esi + 8], edx
cmp word [eax + 0x14], 0
jle 0x42cc7b
mov dword [esp + 0x1c], 0xffffffff
mov edi, 0xfffffffe
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x5c]
push ecx
mov ecx, dword [ebp + 8]
push edx
call fcn.00427a00
mov cx, word [esp + 0x24]
mov dx, word [esp + 0x26]
add cx, word [eax]
add dx, word [eax + 2]
sub esp, 8
mov word [esp + 0x2c], cx
mov word [esp + 0x2e], dx
movsx ecx, cx
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x2c]
fild dword [esp + 0x44]
movsx edx, dx
fmul dword [ebp + 0xc]
fld dword [ebp + 0x10]
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], eax
fimul dword [esp + 0x44]
fsubp st(1)
fadd qword [0x4a8220]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
call sub.MSVCRT.dll__ftol
movsx ecx, word [esp + 0x22]
fld dword [ebp + 0x10]
mov dword [esp + 0x48], eax
movsx eax, word [esp + 0x20]
mov dword [esp + 0x44], eax
fimul dword [esp + 0x44]
mov dword [esp + 0x44], ecx
fild dword [esp + 0x44]
fmul dword [ebp + 0xc]
faddp st(1)
fadd qword [0x4a8220]
fstp qword [esp]
call dword [sym.imp.MSVCRT.dll_floor]
add esp, 8
call sub.MSVCRT.dll__ftol
mov cx, ax
mov eax, dword [esp + 0x40]
cmp ax, word [esp + 0x20]
mov word [esp + 0x1a], cx
mov word [esp + 0x18], ax
jne 0x42c94a
cmp cx, word [esp + 0x22]
je 0x42cc65
lea edx, [esp + 0x20]
lea eax, [esp + 0x18]
push edx
lea ecx, [esp + 0x64]
push eax
push ecx
call fcn.0042b190
add esp, 0xc
mov eax, dword [eax]
mov byte [esp + 0x90], 7
movsx edx, ax
mov dword [esp + 0x40], edx
mov dword [esp + 0x3c], eax
fild dword [esp + 0x40]
movsx eax, word [esp + 0x3e]
fstp dword [esp + 0x70]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x70]
fild dword [esp + 0x40]
fstp dword [esp + 0x74]
mov ecx, dword [esp + 0x74]
push ecx
push edx
lea ecx, [esp + 0x1f]
call fcn.0042edd0
mov al, byte [eax]
lea ecx, [esp + 0x28]
mov byte [esp + 0x28], al
mov byte [esp + 0x90], 6
movsx ax, al
add eax, 0x40
push eax
call fcn.0042cf10
mov al, byte [esp + 0x28]
test al, 0x1f
je 0x42cb54
movsx cx, byte [esp + 0x38]
movsx dx, al
add edx, ecx
mov word [esp + 0x4c], cx
push edx
lea ecx, [esp + 0x48]
call fcn.0042cf10
mov ecx, dword [esp + 0x1c]
mov eax, ebx
inc ebx
inc edi
inc ecx
mov dword [esp + 0x1c], ecx
mov cl, byte [esp + 0x44]
sar cl, 5
push ecx
push eax
mov ecx, esi
call fcn.0042c620
test di, di
jl 0x42cb1a
movsx eax, di
mov ecx, eax
and ecx, 0x80000003
jns 0x42ca20
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x12]
call fcn.0042cf10
movsx eax, word [esp + 0x1c]
mov ecx, eax
and ecx, 0x80000003
jns 0x42ca5b
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x13]
call fcn.0042cf10
movsx dx, byte [esp + 0xe]
movsx ax, byte [esp + 0xf]
sub eax, edx
cmp ax, 0x40
jle 0x42ca9d
sub eax, 0x80
jmp 0x42caa8
cmp ax, 0xffc0
jge 0x42caa8
add eax, 0x80
movsx ax, al
cmp ax, 0xffc0
je 0x42cab8
cmp ax, 0x40
jne 0x42cb1a
movsx ax, byte [esp + 0x2c]
movsx cx, byte [esp + 0x28]
add eax, ecx
lea ecx, [esp + 0x48]
push eax
call fcn.0042cf10
mov dl, byte [esp + 0x48]
mov eax, dword [esp + 0x1c]
sar dl, 5
push edx
push eax
mov ecx, esi
call fcn.0042c620
movsx cx, byte [esp + 0x28]
add ecx, dword [esp + 0x4c]
push ecx
lea ecx, [esp + 0x54]
call fcn.0042cf10
mov edx, dword [esp + 0x1c]
mov eax, ebx
inc ebx
inc edi
inc edx
mov ecx, esi
mov dword [esp + 0x1c], edx
mov dl, byte [esp + 0x50]
sar dl, 5
push edx
push eax
call fcn.0042c620
jmp 0x42cc31
movsx ax, byte [esp + 0x2c]
movsx cx, byte [esp + 0x28]
add eax, ecx
lea ecx, [esp + 0x54]
push eax
call fcn.0042cf10
mov edx, dword [esp + 0x1c]
mov eax, ebx
inc ebx
inc edi
inc edx
mov ecx, esi
mov dword [esp + 0x1c], edx
mov dl, byte [esp + 0x54]
sar dl, 5
push edx
push eax
call fcn.0042c620
jmp 0x42cc31
mov edx, dword [esp + 0x1c]
mov ecx, ebx
sar al, 5
inc ebx
inc edi
push eax
inc edx
push ecx
mov ecx, esi
mov dword [esp + 0x24], edx
call fcn.0042c620
test di, di
jl 0x42cc31
movsx eax, di
mov ecx, eax
and ecx, 0x80000003
jns 0x42cb88
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x14]
call fcn.0042cf10
movsx eax, word [esp + 0x1c]
mov ecx, eax
and ecx, 0x80000003
jns 0x42cbc3
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x15]
call fcn.0042cf10
movsx dx, byte [esp + 0x10]
movsx ax, byte [esp + 0x11]
sub eax, edx
cmp ax, 0x40
jle 0x42cc05
sub eax, 0x80
jmp 0x42cc10
cmp ax, 0xffc0
jge 0x42cc10
add eax, 0x80
movsx ax, al
cmp ax, 0xffc0
je 0x42cc20
cmp ax, 0x40
jne 0x42cc31
mov eax, dword [esp + 0x1c]
sub ebx, 2
sub edi, 2
sub eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x80]
push eax
push eax
mov dword [esp + 0x28], eax
call fcn.004383d0
mov ecx, dword [eax]
mov dword [esp + 0x68], ecx
mov edx, dword [eax + 4]
lea ecx, [esp + 0x68]
lea eax, [esi + 4]
push ecx
push eax
mov dword [esp + 0x74], edx
call fcn.004384f0
add esp, 8
mov eax, dword [esp + 0x30]
mov edx, dword [ebp + 8]
inc eax
cmp ax, word [edx + 0x14]
mov dword [esp + 0x30], eax
jl 0x42c880
mov ax, word [esp + 0x18]
cmp ax, word [esi + 0xc]
jne 0x42cc91
mov cx, word [esp + 0x1a]
cmp cx, word [esi + 0xe]
je 0x42ccb4
push 0xbd
push 0x4b7228
push 0x4b1640
push 0
push 0x4b7268
push 0x4cb2ec
call fcn.00441210
add esp, 0x18
mov edx, dword [esi + 0x10]
xor cx, cx
mov al, byte [edx]
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x16]
call fcn.0042cf10
lea edi, [ebx - 1]
movsx ecx, di
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
and ecx, 0x80000003
jns 0x42ccee
dec ecx
or ecx, 0xfffffffc
inc ecx
mov al, byte [eax + edx]
shl cl, 1
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x17]
call fcn.0042cf10
movsx dx, byte [esp + 0x12]
movsx ax, byte [esp + 0x13]
sub eax, edx
cmp ax, 0x40
jle 0x42cd24
sub eax, 0x80
jmp 0x42cd2f
cmp ax, 0xffc0
jge 0x42cd2f
add eax, 0x80
movsx ax, al
mov dword [esp + 0x30], edi
cmp ax, 0x40
je 0x42cd47
cmp ax, 0xffc0
jne 0x42ce64
cmp bx, 1
jle 0x42ce64
lea eax, [esp + 0x64]
push 0
push eax
mov ecx, esi
call fcn.00427a00
mov cx, word [eax]
sub ebx, 2
add word [esi + 0xc], cx
mov dx, word [eax + 2]
add word [esi + 0xe], dx
mov edx, dword [esp + 0x30]
movsx eax, bx
sub edx, 2
xor edi, edi
test eax, eax
mov dword [esp + 0x30], edx
jle 0x42cdd9
lea eax, [edi + 1]
movsx ecx, ax
mov eax, ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
and ecx, 0x80000003
jns 0x42cda6
dec ecx
or ecx, 0xfffffffc
inc ecx
mov al, byte [eax + edx]
shl cl, 1
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x18]
call fcn.0042cf10
mov dl, byte [esp + 0x14]
mov ecx, esi
sar dl, 5
push edx
push edi
call fcn.0042c620
movsx eax, bx
inc edi
cmp edi, eax
jl 0x42cd85
mov eax, dword [esi + 0x10]
xor dx, dx
mov cl, byte [eax]
and cl, 3
mov dl, cl
lea ecx, [esp + 0x15]
shl edx, 5
push edx
call fcn.0042cf10
movsx eax, word [esp + 0x30]
mov ecx, eax
and ecx, 0x80000003
jns 0x42ce07
dec ecx
or ecx, 0xfffffffc
inc ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esi + 0x10]
sar eax, 2
shl cl, 1
mov al, byte [eax + edx]
shr al, cl
xor cx, cx
and al, 3
mov cl, al
shl ecx, 5
push ecx
lea ecx, [esp + 0x1a]
call fcn.0042cf10
movsx dx, byte [esp + 0x15]
movsx ax, byte [esp + 0x16]
sub eax, edx
cmp ax, 0x40
jle 0x42ce50
sub eax, 0x80
movsx ax, al
jmp 0x42cd37
cmp ax, 0xffc0
jge 0x42ce5b
add eax, 0x80
movsx ax, al
jmp 0x42cd37
cmp bx, 4
jge 0x42ce7c
mov eax, dword [esp + 0x34]
inc eax
cmp eax, 2
mov dword [esp + 0x34], eax
jl 0x42c75a
mov eax, dword [esi + 0xc]
xor edi, edi
test bx, bx
mov word [esi + 0x14], bx
mov dword [esp + 0x18], eax
jle 0x42ceb3
lea ecx, [esp + 0x64]
push edi
push ecx
mov ecx, esi
call fcn.00427a00
mov dx, word [eax]
add word [esp + 0x18], dx
mov ax, word [eax + 2]
add word [esp + 0x1a], ax
inc edi
cmp di, word [esi + 0x14]
jl 0x42ce8e
mov cx, word [esp + 0x18]
cmp cx, word [esi + 0xc]
jne 0x42cec9
mov dx, word [esp + 0x1a]
cmp dx, word [esi + 0xe]
je 0x42ceec
push 0xce
push 0x4b7228
push 0x4b1640
push 0
push 0x4b7268
push 0x4cb2ec
call fcn.00441210
add esp, 0x18
mov ecx, dword [esp + 0x88]
mov eax, esi
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc