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

Disassembly:
sub esp, 0x54
mov eax, dword [0x42a01c]
xor eax, esp
mov dword [esp + 0x50], eax
push ebx
push ebp
push esi
mov esi, dword [esp + 0x64]
xor ecx, ecx
push edi
mov dword [esp + 0x18], esi
mov dword [esp + 0x28], 0
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x14], ecx
mov eax, dword [eax + esi + 0x78]
add eax, esi
mov dword [esp + 0x3c], eax
mov ebx, dword [eax + 0x20]
mov eax, dword [eax + 0x18]
add ebx, esi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x38], eax
test eax, eax
je 0x402ab8
nop dword [eax]
mov edx, dword [ebx]
xorps xmm0, xmm0
add edx, esi
mov dword [esp + 0x58], 0
mov eax, edx
mov dword [esp + 0x5c], 0
movups xmmword [esp + 0x48], xmm0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4028a1
sub eax, esi
lea ecx, [esp + 0x48]
push eax
push edx
call fcn.00401430
mov ebp, dword [esp + 0x58]
lea eax, [esp + 0x48]
mov edx, dword [esp + 0x48]
mov ebx, ebp
xor ebx, 0x235
mov dword [esp + 0x30], ebp
cmp dword [esp + 0x5c], 0x10
mov esi, ebp
mov dword [esp + 0x34], edx
cmovae eax, edx
shr esi, 2
xor edi, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], esi
test esi, esi
je 0x4029bb
mov ebp, esi
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.GDI32.dll_ArcTo]
push str.Z81xbyuAua
push 0x42b158
call fcn.00401100
add esp, 8
mov dword [esp + 0x2c], eax
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + eax + 0x30]
mov esi, dword [ecx + 4]
mov ecx, esi
mov dword [esp + 0x44], esi
mov edx, dword [esi]
call dword [edx + 4]
lea eax, [esp + 0x40]
push eax
call fcn.00401520
add esp, 4
mov ecx, eax
mov edx, dword [eax]
push 0xa
call dword [edx + 0x30]
movzx eax, ax
mov dword [esp + 0x1c], eax
test esi, esi
je 0x40296f
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
test eax, eax
je 0x40296b
mov edx, dword [eax]
mov ecx, eax
push 1
call dword [edx]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
push eax
call fcn.00402bb0
mov ecx, dword [esp + 0x2c]
call fcn.004026e0
mov eax, dword [esp + 0x10]
imul ebx, ebx, 0x5bd1e995
imul ecx, dword [eax + edi*4], 0x5bd1e995
inc edi
mov eax, ecx
shr eax, 0x18
xor eax, ecx
imul ecx, eax, 0x5bd1e995
xor ebx, ecx
cmp edi, ebp
jl 0x4028f2
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
and ebp, 3
xor ecx, ecx
sub ebp, 1
je 0x4029e1
sub ebp, 1
je 0x4029d7
sub ebp, 1
jne 0x4029f3
movsx ecx, byte [eax + esi*4 + 2]
shl ecx, 0x10
movsx eax, byte [eax + esi*4 + 1]
shl eax, 8
xor ecx, eax
mov eax, dword [esp + 0x10]
movsx eax, byte [eax + esi*4]
xor eax, ecx
imul eax, eax, 0x5bd1e995
xor ebx, eax
mov eax, ebx
shr eax, 0xd
xor eax, ebx
imul ecx, eax, 0x5bd1e995
mov eax, ecx
shr eax, 0xf
xor eax, ecx
cmp eax, dword [esp + 0x6c]
je 0x402a65
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
add ebx, 4
mov dword [esp + 0x24], ebx
cmp eax, 0x10
jb 0x402a4c
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x402a42
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402ad1
push ecx
push edx
call fcn.00405b33
add esp, 8
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x38]
jb 0x402880
jmp 0x402ab8
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov eax, dword [edi + 0x24]
lea eax, [eax + ecx*2]
movzx ecx, word [eax + esi]
mov eax, dword [edi + 0x1c]
lea eax, [eax + ecx*4]
mov eax, dword [eax + esi]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x5c]
cmp eax, 0x10
jb 0x402ab8
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x402aae
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x402ad1
push ecx
push edx
call fcn.00405b33
add esp, 8
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x60]
add eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00405b41
add esp, 0x54
ret
call fcn.0040a5af
int3