Function at 0x402210
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xb0
push ebx
push ebp
push esi
mov ebp, ecx
push edi
xor esi, esi
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor edi, edi
push esi
mov dword [esp + 0x58], 0xffffb1e0
mov dword [esp + 0x40], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], esi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edi
call fcn.0040d010
add esp, 4
push eax
call fcn.0040cfd0
mov eax, dword [ebp + 0xe6c]
add esp, 4
cmp eax, esi
mov byte [esp + 0x1c], 1
mov byte [esp + 0x1d], 2
mov byte [esp + 0x1e], 3
mov byte [esp + 0x1f], 4
mov byte [esp + 0x20], 5
mov byte [esp + 0x21], 8
mov byte [esp + 0x22], 9
mov byte [esp + 0x23], 0xa
mov byte [esp + 0x24], 0xb
mov byte [esp + 0x25], 0xc
mov byte [esp + 0x26], 0x41
mov byte [esp + 0x27], 0x42
mov byte [esp + 0x28], 0x43
mov byte [esp + 0x29], 0x44
mov byte [esp + 0x2a], 0x45
mov byte [esp + 0x2b], 0x48
mov byte [esp + 0x2c], 0x49
mov byte [esp + 0x2d], 0x4a
mov byte [esp + 0x2e], 0x4b
mov byte [esp + 0x2f], 0x4c
mov byte [esp + 0x30], 0x11
mov byte [esp + 0x31], 0x21
mov byte [esp + 0x32], 0x31
mov byte [esp + 0x33], 0x1c
mov byte [esp + 0x34], 0x2c
mov byte [esp + 0x35], 0x3c
jne 0x40272b
cmp dword [esp + 0xc8], esi
je 0x40272b
mov eax, dword [ebp + 0xdb8]
mov ecx, dword [ebp + 0xdbc]
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0xda0]
cmp eax, esi
mov dword [esp + 0x60], ecx
je 0x40261c
jmp 0x402360
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov dword [ebp + 0xdb8], ecx
mov dword [esp + 0x18], edx
mov edi, dword [ecx + 8]
mov esi, dword [ecx + 0xc]
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], esi
call fcn.004019d0
test eax, eax
je 0x40260c
lea ecx, [edi + esi*4]
mov eax, esi
add eax, ecx
mov ecx, dword [ebp + 0xdb8]
mov esi, dword [ecx + 0x10]
lea edx, [eax + eax*2]
shl edx, 4
cmp esi, 9
lea eax, [edx + ebp]
mov edx, dword [edx + ebp + 0x8c]
mov dword [esp + 0x64], edx
mov dword [esp + 0x14], edx
jne 0x402452
mov ecx, dword [eax + 0x6c]
test ecx, ecx
je 0x402452
mov ecx, 6
lea esi, [esp + 0x1c]
lea edi, [esp + 0x98]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
xor edi, edi
test edx, edx
jle 0x402449
mov eax, dword [eax + 0x88]
lea edx, [esp + 0xb2]
mov dword [esp + 0x10], edx
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x58]
mov bl, byte [edi + ecx]
movsx esi, bl
mov eax, esi
cdq
xor eax, edx
sub eax, edx
and eax, 0xf
xor eax, edx
sub eax, edx
lea ecx, [eax + eax*4]
mov eax, esi
cdq
and edx, 0xf
add eax, edx
sar eax, 4
add ecx, eax
lea edx, [ecx + ecx*2]
shl edx, 4
mov eax, dword [edx + ebp + 0x6c]
test eax, eax
je 0x402431
dec dword [esp + 0x14]
jmp 0x40243c
mov eax, dword [esp + 0x10]
mov byte [eax], bl
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
inc edi
cmp edi, eax
jl 0x4023f5
mov edx, dword [esp + 0x14]
add edx, 0x1a
mov dword [esp + 0x14], edx
jmp 0x402475
test edx, edx
jle 0x402475
mov eax, dword [eax + 0x88]
mov ecx, edx
mov esi, eax
mov eax, ecx
lea edi, [esp + 0x98]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor ebx, ebx
test edx, edx
mov dword [esp + 0x10], ebx
jle 0x402608
movsx ecx, byte [esp + ebx + 0x98]
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
mov edi, eax
mov eax, ecx
cdq
xor eax, edx
mov ecx, dword [ebp + 0xdb8]
sub eax, edx
and eax, 0xf
xor eax, edx
mov esi, eax
sub esi, edx
sar edi, 4
push esi
push edi
push ecx
mov ecx, ebp
call fcn.00402940
cmp eax, 0xfffffffe
je 0x4025f7
lea edx, [edi + esi*4]
mov eax, esi
add eax, edx
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [eax + ebp + 0x78]
lea ebx, [eax + ebp + 0x78]
mov eax, dword [ebp + 0xdb8]
mov dword [ebp + 0xdbc], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
lea edx, [ecx + ecx*4]
add eax, edx
lea eax, [eax + eax*2]
shl eax, 4
mov dword [eax + ebp + 0x78], 0
mov eax, dword [ebx]
test eax, eax
je 0x40253c
mov eax, dword [ebp + 0xdbc]
mov ecx, dword [eax + 0x48]
test ecx, ecx
jne 0x402528
cmp dword [eax + 0xc], 0xc
jl 0x402528
mov edx, dword [eax + 0x24]
mov ecx, 0xf
cmp edx, ecx
jne 0x402528
cmp dword [ebp + 0xd8c], ecx
jge 0x402558
mov ecx, dword [ebp + 0xdb8]
push eax
call fcn.00401970
sub eax, 0
je 0x402558
dec eax
jne 0x40255e
mov ecx, dword [ebp + 0xdb8]
mov dword [ecx + 8], edi
mov edx, dword [ebp + 0xdb8]
mov dword [edx + 0xc], esi
mov eax, dword [ebp + 0xdb8]
mov dword [ebx], eax
jmp 0x40255e
mov dword [ebx], 0
mov ecx, ebp
call fcn.00402010
cmp eax, dword [esp + 0x54]
jle 0x4025b6
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], ecx
cdq
mov ecx, 3
mov dword [esp + 0x4c], edi
idiv ecx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], esi
shl edx, 4
lea edx, [esp + edx + 0x68]
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
inc eax
mov dword [edx + 4], ecx
mov dword [esp + 0x3c], eax
mov dword [edx + 8], edi
mov dword [edx + 0xc], esi
mov edx, dword [ebp + 0xdb8]
mov eax, dword [esp + 0x38]
mov dword [edx + 8], eax
mov ecx, dword [ebp + 0xdb8]
mov edx, dword [esp + 0x40]
mov dword [ecx + 0xc], edx
mov ecx, dword [ebp + 0xdb8]
mov eax, dword [ecx + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [ecx + 8]
add eax, edx
lea eax, [eax + eax*2]
shl eax, 4
mov dword [eax + ebp + 0x78], ecx
mov ecx, dword [ebp + 0xdbc]
mov dword [ebx], ecx
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc ebx
cmp ebx, eax
mov dword [esp + 0x10], ebx
jl 0x402483
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x40235c
mov edi, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x60]
mov dword [ebp + 0xdb8], edx
mov dword [ebp + 0xdbc], eax
lea esi, [esp + 0x68]
mov dword [esp + 0x18], 3
lea ecx, [esp + 0x1c]
xor eax, eax
push ecx
push esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
call dword [sym.imp.USER32.dll_EqualRect]
test eax, eax
je 0x402673
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov edx, esi
mov dword [edx], eax
mov dword [edx + 4], ebx
mov dword [edx + 8], ecx
mov dword [edx + 0xc], edi
mov eax, dword [esp + 0x18]
add esi, 0x10
dec eax
mov dword [esp + 0x18], eax
jne 0x40263c
call fcn.0040cfe0
cdq
mov ecx, 3
idiv ecx
mov eax, dword [esp + 0x44]
lea ecx, [eax + ebx*4]
add ebx, ecx
lea eax, [ebx + ebx*2]
shl eax, 4
mov eax, dword [eax + ebp + 0x78]
test eax, eax
je 0x4026f8
cmp dword [eax + 0x10], 9
jne 0x4026f8
cmp edi, 0xc
jge 0x4026f8
mov ecx, dword [esp + 0x4c]
lea eax, [ecx + edi*4]
add edi, eax
lea ecx, [edi + edi*2]
shl ecx, 4
mov eax, dword [ecx + ebp + 0x78]
test eax, eax
jne 0x4026f8
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0x68]
mov edx, eax
mov dword [edx], ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [edx + 8], ecx
mov ecx, dword [esp + 0x74]
mov dword [edx + 0xc], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret 8
mov eax, dword [esp + 0xc4]
shl edx, 4
mov ecx, eax
lea edx, [esp + edx + 0x68]
mov esi, dword [edx]
mov dword [ecx], esi
mov esi, dword [edx + 4]
mov dword [ecx + 4], esi
mov esi, dword [edx + 8]
mov dword [ecx + 8], esi
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret 8
mov eax, dword [esp + 0xc4]
pop edi
mov dword [eax], esi
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax + 0xc], esi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret 8