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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xe8
mov eax, dword [ebp + 8]
mov cl, byte [esp + 0xe3]
mov dl, cl
add dl, dl
mov byte [esp + 0xe3], dl
mov dword [esp + 0xdc], 0
mov dword [esp + 0xd8], 0x5b19
mov word [esp + 0xca], 0x17bf
mov byte [esp + 0xc9], 0x3f
mov dword [esp + 0xc4], 0x7dd5
mov esi, 0x7dd5
mov dword [esp + 0x64], 0x5df0
mov edi, dword [esp + 0xd8]
mov ebx, dword [esp + 0xdc]
xor edx, edx
mov dword [esp + 0x30], eax
mov eax, 0x998b
sub eax, edi
sbb edx, ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edx
movzx eax, word [esp + 0xca]
mov dx, ax
xor eax, 0x6e1c
mov word [esp + 0x7e], ax
mov eax, dword [esp + 0xc4]
add eax, 0xffffb58c
mov dword [esp + 0xcc], 0x7fcb
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x98], eax
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x2b], cl
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov word [esp + 0x1e], dx
call fcn.00402840
mov dword [esp + 0x74], eax
mov esi, esp
mov dword [esi], eax
call fcn.00402790
sub esp, 4
mov dword [esp + 0x54], eax
mov cl, byte [esp + 0x2b]
add cl, 0xa2
mov byte [esp + 0xe3], cl
mov eax, dword [esp + 0x54]
add eax, 0x18
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x74]
mov esi, dword [esp + 0x20]
or esi, 0x1f75
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xd4], edi
mov dword [esp + 0xd0], esi
mov esi, dword [esp + 0x5c]
mov esi, dword [esi + 0x60]
add eax, esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x64]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc4]
xor eax, 0xffff822a
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xc4]
xor eax, 0x6566
mov ebx, dword [esp + 0x74]
cmp eax, esi
mov dword [esp + 0x18], ebx
jbe 0x40252b
jmp 0x4025d4
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0xb0]
mov ecx, dword [ecx + 0x1c]
add eax, ecx
mov dl, byte [esp + 0x2b]
mov byte [esp + 0xe3], dl
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xa0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x58]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x60], eax
jmp 0x4026c9
mov eax, dword [esp + 0xc4]
add eax, 0xffff822b
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x70]
movsx ecx, byte [ecx + edx]
mov edx, dword [esp + 0x6c]
sub edx, ecx
sete bl
movzx ecx, bl
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x24]
xor ecx, 0x465f
mov esi, dword [esp + 0x70]
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0x20]
and ecx, 0x898
mov edi, dword [esp + 0x88]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], 0
movsx ecx, byte [edi + esi]
cmp ecx, eax
mov dword [esp + 0x14], edx
je 0x402789
jmp 0x40274c
jmp 0x402428
mov eax, dword [esp + 0xbc]
mov eax, dword [eax]
cmp dword [esp + 0xa4], eax
jb 0x4024ab
jmp 0x402652
mov eax, dword [esp + 0xb8]
add eax, 2
mov word [esp + 0xe0], 0x26b3
mov dword [esp + 0xb8], eax
jmp 0x40267e
mov eax, 0x7dd6
mov ecx, dword [esp + 0x24]
xor ecx, 0xaf3
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0xb4]
sub eax, dword [esp + 0xc4]
add ecx, eax
mov dword [esp + 0x68], ecx
jmp 0x40270f
mov ax, word [esp + 0xca]
mov cx, word [esp + 0xca]
add cx, 0xff68
mov word [esp + 0xe0], 0x8f36
mov edx, dword [esp + 0x70]
xor ax, 0x4a66
mov word [esp + 0x80], ax
add edx, 1
mov ax, word [esp + 0x80]
mov dword [esp + 0x9c], edx
cmp ax, cx
ja 0x402577
jmp 0x4023bc
cmp dword [esp + 0x70], 0x20
jb 0x4025d4
jmp 0x4024ee
cmp word [esp + 0x8e], 0x3187
je 0x4022ee
mov eax, 0x69a1
cmp eax, dword [esp + 0x94]
jbe 0x402789
jmp 0x402670
mov al, byte [esp + 0x2b]
add al, 0x2e
mov ecx, dword [esp + 0x74]
mov byte [esp + 0xe3], al
mov edx, dword [esp + 0xc4]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x68]
mov esi, dword [esi + edi*4]
xor edx, 0x7dd5
add ecx, esi
mov dword [esp + 0x88], ecx
mov dword [esp + 0xac], 0
mov dword [esp + 0x70], edx
jmp 0x402477
cmp dword [esp + 0xac], 0
jne 0x4025b4
jmp 0x4023d9
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x98]
mov dl, byte [ecx + eax]
mov eax, dword [esp + 0xc4]
xor eax, 0x7dd5
movsx ecx, dl
cmp ecx, eax
je 0x402789
jmp 0x402587
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0xc4]
xor ecx, 0x7dd5
mov edx, dword [esp + 0x18]
add edx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0xb0]
mov eax, dword [eax + 0x24]
mov edx, dword [esp + 0x74]
add edx, eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0x68], ecx
mov eax, dword [esp + 0x24]
mov dword [esp + 0xcc], eax
jmp 0x40270f
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x70], eax
jmp 0x402477
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xac]
add eax, 0xffff822b
cmp ecx, eax
je 0x402789
jmp 0x4023bc
mov dword [esp + 0x60], 0
jmp 0x4026c9
mov eax, dword [esp + 0xb8]
movzx eax, word [eax]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x24]
sub eax, 0x4e98
mov dword [esp + 0xcc], eax
jmp 0x402652
mov eax, dword [esp + 0x20]
or eax, 0x241c
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0x2c]
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x88]
mov edi, dword [esp + 0x70]
mov ebx, ecx
xor ebx, 0x2426
movsx eax, byte [eax + edi]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ebx
mov edi, dword [esp + 0x20]
add edi, 0x1c5f
adc esi, 0
mov dword [esp + 0xd4], esi
mov dword [esp + 0xd0], edi
mov dword [esp + 0x6c], eax
xor ecx, 0x4e29
or ecx, edx
mov dword [esp + 0x10], ecx
jne 0x402341
jmp 0x40270f
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0xc4]
xor ecx, 0xffff822a
cmp eax, ecx
je 0x4025a7
jmp 0x4022ee
mov eax, dword [esp + 0x60]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 4
mov al, byte [esp + 0xc9]
mov ecx, dword [esp + 0x68]
add al, 0x6e
mov dword [esp + 0xb4], ecx
mov byte [esp + 0x83], al
mov al, byte [esp + 0xc9]
mov dl, byte [esp + 0x83]
xor al, 0x65
cmp dl, al
jae 0x4023f9
jmp 0x4024ab
cmp dword [esp + 0x64], 0x1672
ja 0x402484
jmp 0x4025b4
mov ax, 0x5f3d
mov cx, word [esp + 0xca]
sub ax, word [esp + 0xca]
add cx, 0xea48
mov word [esp + 0xaa], cx
mov cx, word [esp + 0xaa]
mov dword [esp + 0x94], 0x1b33
mov dx, word [esp + 0x7e]
mov word [esp + 0x8e], dx
cmp cx, ax
jne 0x4026b6
mov ax, 0x395
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xa4], ecx
mov ecx, dword [esp + 0xb0]
add ecx, 0x18
mov dword [esp + 0xbc], ecx
mov word [esp + 0x8c], 0x55f
cmp ax, word [esp + 0x8c]
je 0x402652
jmp 0x4023be
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x70]
xor eax, 0x47af
mov dword [esp + 0x84], edx
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
sub edx, eax
sbb esi, ecx
mov dword [esp + 0xc], edx
mov dword [esp + 8], esi
jb 0x4024ee
jmp 0x402501
jmp 0x4024ee