Function at 0x4213e0
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x2d8
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x138], 0xe11a0b05
mov byte [esp + 0x13c], 0x94
mov dword [esp + 0x13d], 0
mov ecx, 0x26
mov edx, 0xd9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx + 0x112]
lea esi, [ebx + ebx]
not esi
add esi, ebx
mov edi, edx
and edi, ebx
not ebx
or ebx, esi
and ebx, ecx
or ebx, edi
add bl, 0x42
mov byte [esp + ecx + 0x112], bl
inc ecx
dec edx
cmp ecx, 0x2f
jne 0x421440
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x42149b
lea edx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421490
mov byte [esi], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
lea ecx, [esp + 0x40]
lea edx, [esp + 0x50]
lea edi, [esp + 0x30]
push ecx
push edx
push edi
mov ecx, dword [ebp + 0x14]
push dword [ecx + 0x10]
push eax
push dword [ecx + 0xc]
call fcn.00423800
add esp, 0x18
test al, al
je 0x422556
mov dword [esp + 0x138], 0x7119efe8
mov byte [esp + 0x13c], 0x7c
mov dword [esp + 0x13d], 0
mov dword [esp + 0x140], 0
mov eax, 0xf51190ea
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xaee704e]
xor ecx, eax
add ecx, 0x36a82b6d
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax + 0xaee704e], cl
inc eax
cmp eax, 0xf51190f6
jne 0x421520
movzx eax, byte [esp + 0x138]
test al, al
je 0x42156b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421560
mov byte [esi], 0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x130], eax
mov dword [esp + 0x138], 0xe6a89df9
mov dword [esp + 0x13c], 0xa4ebbd8a
mov dword [esp + 0x140], 0xbae49492
mov dword [esp + 0x144], 0x9c9b9a99
mov dword [esp + 0x148], 0xa2b8ebb1
mov dword [esp + 0x14c], 0x9d9a8795
mov dword [esp + 0x150], 0xa8a7a6a5
mov dword [esp + 0x154], 0xb592d384
mov dword [esp + 0x158], 0x9fa499db
mov dword [esp + 0x15c], 0xb6cbc79f
mov dword [esp + 0x160], 0x8ecebda3
mov dword [esp + 0x164], 0xcf8caca0
mov dword [esp + 0x168], 0x74cebc9e
mov dword [esp + 0x16c], 0x33573735
mov dword [esp + 0x170], 0x4a406147
mov dword [esp + 0x174], 0x4c4b4a49
mov dword [esp + 0x178], 0x7e6d6b61
mov dword [esp + 0x17c], 0x54274853
mov dword [esp + 0x180], 0x58517344
mov dword [esp + 0x184], 0x2b5b5a59
mov dword [esp + 0x188], 0x605f5e55
mov dword [esp + 0x18c], 0x531a6f61
mov dword [esp + 0x190], 0x661e6312
mov dword [esp + 0x194], 0x5e5d1f62
mov dword [esp + 0x198], 0x706f6e6d
mov dword [esp + 0x19c], 0x56020a5d
mov dword [esp + 0x1a0], 0x53754675
mov dword [esp + 0x1a4], 0x7c0f5801
mov dword [esp + 0x1a8], 0x7f7e7d
mov dword [esp + 0x1ac], 0x8030201
mov dword [esp + 0x1b0], 0xa293271
mov dword [esp + 0x1b4], 0xc0b0a09
mov dword [esp + 0x1b8], 0x351b2c23
mov dword [esp + 0x1bc], 0x613e6611
mov byte [esp + 0x1c0], 0x54
mov dword [esp + 0x1c4], 0
mov dword [esp + 0x1c1], 0
mov eax, 0x4d
mov ecx, 0xdfe205b2
nop
nop
nop
movzx edx, byte [esp + eax + 0xeb]
mov ebx, ecx
or ebx, edx
not edx
or edx, eax
and edx, ebx
mov ebx, 0x7d
sub ebx, edx
add edx, 0x82
and edx, 0x9d
and ebx, 0x62
sub ebx, edx
add bl, 0x9e
mov byte [esp + eax + 0xeb], bl
inc eax
dec ecx
cmp eax, 0xdd
jne 0x421730
mov dword [esp + 0x70], 0x804a5656
mov dword [esp + 0x74], 0xd08f2de8
mov dword [esp + 0x78], 0xe3c48040
mov dword [esp + 0x7c], 0xf0e0d0c
mov dword [esp + 0x80], 0x1b66ee95
mov dword [esp + 0x84], 0xffe79c5c
mov dword [esp + 0x88], 0x1b1a1918
mov dword [esp + 0x8c], 0x57ee9454
mov dword [esp + 0x90], 0x7c0ae5a3
mov dword [esp + 0x94], 0xebeae67a
mov dword [esp + 0x98], 0xe7e6e5e4
mov dword [esp + 0x9c], 0xe3e2e1e0
mov dword [esp + 0xa0], 0xb07a6666
mov dword [esp + 0xa4], 0xbe7e0dd8
mov dword [esp + 0xa8], 0x3eb171f6
mov dword [esp + 0xac], 0x3f3e3d3c
mov dword [esp + 0xb0], 0xba27008
mov dword [esp + 0xb4], 0x476201cd
mov dword [esp + 0xb8], 0x4b33c400
mov dword [esp + 0xbc], 0x674e4d4c
mov dword [esp + 0xc0], 0x535251b8
mov dword [esp + 0xc4], 0x11dd1d54
mov dword [esp + 0xc8], 0x15d11178
mov dword [esp + 0xcc], 0xc9d51574
mov dword [esp + 0xd0], 0x63626160
mov dword [esp + 0xd4], 0x4322e828
mov dword [esp + 0xd8], 0x7be32068
mov dword [esp + 0xdc], 0x6fe8aa24
mov dword [esp + 0xe0], 0x73727170
mov dword [esp + 0xe4], 0x3f767574
mov dword [esp + 0xe8], 0x6e8583f1
mov dword [esp + 0xec], 0x7f7e7d7c
mov dword [esp + 0xf0], 0xa7ce0ac8
mov dword [esp + 0xf4], 0x66b7cd84
mov byte [esp + 0xf8], 0x88
mov dword [esp + 0xfc], 0
mov dword [esp + 0xf9], 0
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + edx + 0x70]
lea ebx, [edx + 0x761e1580]
and ebx, edi
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
mov byte [esp + edx + 0x70], al
inc edx
cmp edx, 0x90
jne 0x421900
lea eax, [esp + 0x138]
lea edx, [esp + 0x70]
lea ecx, [esp + 0x128]
push eax
push 0x88
push edx
lea edi, [esp + 0x3c]
push edi
call fcn.004426d0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
xor ecx, ecx
or eax, edx
je 0x42258a
mov dword [esp + 0x138], 0x872c2f60
mov byte [esp + 0x13c], 0xb8
mov word [esp + 0x13d], 0
mov byte [esp + 0x13f], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x5f
xor al, byte [esp + ecx + 0x138]
add al, 0x25
mov byte [esp + ecx + 0x138], al
mov eax, ecx
and eax, 1
xor ecx, 1
lea ecx, [ecx + eax*2]
cmp ecx, 8
jb 0x4219b0
movzx eax, byte [esp + 0x138]
test al, al
je 0x4219fb
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4219f0
mov byte [esi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push edi
call fcn.004426d0
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
xor ecx, ecx
or eax, edx
je 0x42258a
mov dword [esp + 0x138], 0x67c0c0f2
mov byte [esp + 0x13c], 0x68
mov dword [esp + 0x13d], 0
mov byte [esp + 0x141], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x97
xor al, byte [esp + ecx + 0x138]
add al, 0xd
mov byte [esp + ecx + 0x138], al
inc ecx
cmp ecx, 0xa
jne 0x421a60
movzx eax, byte [esp + 0x138]
test al, al
je 0x421a9b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421a90
mov byte [esi], 0
lea eax, [esp + 0x118]
lea edx, [esp + 0x44]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.00441ce0
mov eax, dword [esp + 0x44]
xor ecx, ecx
cmp eax, dword [esp + 0x48]
je 0x42258a
mov dword [esp + 0x138], 0x9eeede1
mov byte [esp + 0x13c], 4
mov dword [esp + 0x13d], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x40
xor al, byte [esp + ecx + 0x138]
add al, 0xc0
mov byte [esp + ecx + 0x138], al
inc ecx
cmp ecx, 9
jne 0x421af0
movzx eax, byte [esp + 0x138]
test al, al
je 0x421b2b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421b20
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x100], ecx
cmp eax, ecx
je 0x422588
xor ecx, ecx
lea edi, [esp + 0x30]
jmp 0x421b7e
xor ebx, ebx
push dword [esp + 8]
call fcn.004053e0
add esp, 4
mov ecx, dword [esp + 0xc]
and cl, 1
or cl, bl
mov eax, dword [esp + 0x104]
add eax, 8
cmp eax, dword [esp + 0x100]
je 0x422560
mov dword [esp + 0xc], ecx
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x104], eax
mov eax, dword [eax + 4]
mov dword [esp], eax
push 0x198
push 0
lea eax, [esp + 0x140]
push eax
call fcn.0040d3a0
add esp, 0xc
xor ebx, ebx
jmp 0x421bbe
lea edi, [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x421d50
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x144]
push eax
push dword [esp + 0x10]
push dword [esp + 0x1c]
call fcn.00441b70
test eax, eax
js 0x421bb4
movzx eax, byte [esp + 0x208]
movzx ecx, byte [esp + 0x209]
or al, 0x30
mov byte [esp + 0x58], al
or cl, 0x30
mov byte [esp + 0x59], cl
movzx ecx, byte [esp + 0x20a]
or cl, 0x30
mov byte [esp + 0x5a], cl
movzx ecx, byte [esp + 0x2c8]
or cl, 0x30
mov byte [esp + 0x5b], cl
mov word [esp + 0x5c], 0xa
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + ecx], al
movzx eax, byte [esp + ecx + 0x59]
inc ecx
test al, al
jne 0x421c30
mov byte [esi + ecx], 0
cmp byte [esp + 0x20a], 0
jne 0x421d70
add esi, ecx
mov dword [esp + 0x70], 0x79dbd0cf
mov byte [esp + 0x74], 0x7c
mov dword [esp + 0x75], 0
mov eax, 0x2d586594
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x2d586524]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x1c
mov byte [esp + eax - 0x2d586524], cl
inc eax
cmp eax, 0x2d58659d
jne 0x421c70
movzx eax, byte [esp + 0x70]
test al, al
je 0x421cbb
lea ecx, [esp + 0x71]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421cb0
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x70], 0x282b2a25
mov word [esp + 0x74], 0
xor eax, eax
nop
mov ecx, eax
add cl, 0x37
xor cl, byte [esp + eax + 0x70]
add cl, 0xed
mov byte [esp + eax + 0x70], cl
inc eax
cmp eax, 6
jne 0x421ce0
mov eax, dword [0x5d3040]
test eax, eax
je 0x421bb0
mov ecx, dword [esp + 0x70]
xor edx, edx
mov edi, dword [0x5d3044]
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x421d23
inc edx
cmp eax, edx
jne 0x421d10
jmp 0x421bb0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x421bb0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x5d3048]
push eax
call fcn.00443c90
add esp, 0x14
jmp 0x421bb0
cmp byte [esp + 0x20a], 0
jne 0x421d72
mov ecx, dword [esp + 0xc]
jmp 0x421b67
add esi, ecx
call fcn.004055a0
mov dword [esp + 8], eax
push eax
call fcn.004051d0
add esp, 4
mov dword [esp + 4], eax
mov dword [esp + 0x70], 0x19c7c3b9
mov byte [esp + 0x74], 0x24
lea eax, [esp + 0x75]
mov word [eax + 4], 0
mov dword [eax], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 0x70]
mov ebx, eax
and ebx, 0x10
mov edx, ecx
xor edx, 0x344beaf8
add edx, ebx
xor edx, edi
mov edi, edx
xor edi, 0x12
and edx, 0x6d
add edx, edx
sub edx, edi
add dl, 0x3a
mov byte [esp + ecx + 0x70], dl
inc ecx
add eax, 2
cmp ecx, 0xb
jne 0x421db0
movzx eax, byte [esp + 0x70]
test al, al
je 0x421e10
lea edx, [esp + 0x71]
lea ecx, [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edx]
inc edx
test al, al
jne 0x421e00
jmp 0x421e14
lea ecx, [esp + 0x30]
mov byte [esi], 0
mov eax, dword [esp + 0x170]
mov edx, dword [esp + 0x174]
mov edi, eax
or edi, edx
je 0x421e60
push 0
push 0
push 0x40
mov ebx, ecx
lea edi, [esp + 0x7c]
push edi
push edx
push eax
call fcn.00441b70
test eax, eax
js 0x421e6b
mov ecx, ebx
mov edx, edi
push dword [esp + 4]
call fcn.00424030
add esp, 4
mov dword [esp], eax
jmp 0x421e72
mov eax, esi
mov dword [esp], 0
jmp 0x421e74
mov dword [esp], 0
mov eax, esi
mov dword [esp + 0x70], 0x4fe810eb
mov byte [esp + 0x74], pe_nt_image_headers32
lea ecx, [esp + 0x75]
mov word [ecx + 4], 0
mov dword [ecx], 0
mov ecx, 0x6b461314
lea edi, [esp + 0x70]
nop
nop
nop
nop
nop
nop
movzx edx, byte [edi]
mov ebx, ecx
or ebx, edx
lea esi, [ecx - 0x6b461300]
and esi, edx
not ebx
or ebx, esi
mov edx, ebx
and edx, 0x68
mov esi, ebx
xor esi, 0x68
lea edx, [esi + edx*2]
and ebx, 1
or edx, 1
add edx, ebx
mov byte [edi], dl
inc edi
dec ecx
cmp ecx, 0x6b461309
jne 0x421ea0
movzx ecx, byte [esp + 0x70]
test cl, cl
je 0x421f00
lea edx, [esp + 0x71]
mov esi, eax
lea edi, [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x421ef0
jmp 0x421f06
mov esi, eax
lea edi, [esp + 0x30]
mov byte [esi], 0
cmp byte [esp], 0
je 0x421b50
push dword [esp + 4]
call fcn.004053a0
add esp, 4
test eax, eax
je 0x42208e
mov eax, dword [esp + 0x290]
mov edx, dword [esp + 0x294]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.00441b70
test eax, eax
mov dword [esp + 0x2c], esi
js 0x4221b9
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x114]
push ebx
push edx
push eax
call fcn.00441b70
test eax, eax
js 0x4221b9
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x10c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x64]
push edi
push edx
push eax
call fcn.00441b70
test eax, eax
js 0x4221b9
cmp byte [esp + 0x6f], 0
lea ebx, [esp + 0x58]
js 0x422095
mov dword [esp + 0x10], 0x41db47fb
mov dword [esp + 0x14], 0x4dd043ef
mov dword [esp + 0x18], 0x49024f2c
mov dword [esp + 0x1c], 0xb5d64beb
mov dword [esp + 0x20], 0xb112b717
mov word [esp + 0x24], 0xb3b0
lea eax, [esp + 0x26]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0xfdd3dbf1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x22c241f]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x4a
mov byte [esp + eax + 0x22c241f], cl
inc eax
cmp eax, 0xfdd3dc0c
jne 0x422020
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 4], ebx
je 0x4220c5
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp], ebx
jmp 0x422068
movzx edi, word [eax]
test di, di
je 0x4220d8
movzx ebx, word [edx]
test bx, bx
je 0x4220cd
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp bx, di
je 0x422086
mov dword [esp], ecx
mov edx, ecx
je 0x422060
lea eax, [esp + 0x10]
jmp 0x422060
mov bl, 1
jmp 0x421b52
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, ecx
or eax, edx
je 0x4221b9
mov edi, dword [esp + 0x60]
mov ebx, edi
inc ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
jns 0x422169
mov eax, 0xffffffff
jmp 0x422170
mov eax, ebx
lea edx, [esp + 0x70]
jmp 0x4220e9
lea edx, [esp + 0x70]
mov ebx, edx
jmp 0x422525
lea edx, [esp + 0x70]
mov ebx, edx
mov eax, dword [esp]
test eax, eax
je 0x422525
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x422525
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
cmp di, 0x5c
je 0x42211a
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x422100
mov ebx, edx
jmp 0x422525
mov ebx, edx
test ecx, ecx
je 0x42251c
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x4224bc
xor edi, edi
mov ebx, edx
mov dword [esp], esi
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [eax]
xor edx, edx
test si, si
setne dl
lea eax, [eax + edx*2]
mov word [ebx], si
mov esi, dword [esp]
add ebx, 2
inc edi
cmp esi, edi
jne 0x422140
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x70]
jmp 0x4224c0
lea eax, [edi*2 + 2]
push eax
call fcn.0040d310
add esp, 4
mov edx, 2
sub edx, edi
and edx, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, ecx
lea ecx, [esp + 0x30]
push 0
push 0
push ebx
mov ebx, eax
push eax
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.00441b70
test eax, eax
jns 0x421fd0
lea edx, [esp + 0x70]
mov dword [esp + 0x10], 0x33443179
mov dword [esp + 0x14], 0x3f493d5f
mov dword [esp + 0x18], 0x3b4c3957
mov dword [esp + 0x1c], 0x473a452d
mov dword [esp + 0x20], 0x43424137
mov word [esp + 0x24], 0
xor eax, eax
nop
nop
mov ecx, eax
add cl, 0xb4
xor cl, byte [esp + eax + 0x10]
add cl, 0x7c
mov byte [esp + eax + 0x10], cl
inc eax
cmp eax, 0x16
jne 0x4221f0
movzx eax, word [esp + 0x10]
mov ebx, edx
test ax, ax
je 0x422231
lea ecx, [esp + 0x12]
mov ebx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x422220
mov word [ebx], 0
mov eax, edx
mov edx, ebx
sub edx, eax
mov ecx, edx
shr ecx, 2
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
and eax, 0xfffffffc
lea edi, [esi + eax]
add eax, esp
add eax, 0x70
mov ecx, edx
shr ecx, 1
and ecx, 1
mov esi, eax
mov dword [esp], edi
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x42227b
mov ecx, edx
and ecx, 2
movzx eax, byte [eax + ecx]
mov esi, dword [esp]
mov byte [esi + ecx], al
mov dword [esp + 0x10], 0xeb1f1d76
mov word [esp + 0x14], 0x7d72
lea eax, [esp + 0x26]
mov byte [eax - 0xc], 0
mov dword [eax - 0x10], 0
mov eax, 0x3c6c9e6a
mov ecx, 0x95
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x3c6c9e5a]
mov edi, ecx
xor edi, eax
and edi, esi
xor edi, eax
mov ebx, edi
and ebx, 0x6d
add ebx, ebx
xor edi, 0x12
sub ebx, edi
mov byte [esp + eax - 0x3c6c9e5a], bl
inc eax
dec ecx
cmp eax, 0x3c6c9e75
jne 0x4222b0
mov esi, dword [esp + 0x2c]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x4222fb
lea ecx, [esp + 0x11]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4222f0
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov edi, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [edi + eax + 2], 0
lea eax, [eax + 2]
jne 0x422310
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x422330
mov eax, 0xffffffff
jmp 0x422339
add edx, eax
lea eax, [edx*2 + 0x14]
mov dword [esp + 0x2c], esi
push eax
call fcn.0040d310
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x422371
add edi, 2
mov edx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], cx
add edx, 2
movzx ecx, word [edi]
add edi, 2
test cx, cx
jne 0x422360
mov dword [esp], eax
mov eax, edx
mov word [edx], 0x2f
mov dword [esp + 0x10], 0xf908fb2d
mov dword [esp + 0x14], 0xe57fe713
mov dword [esp + 0x18], 0xe17ee336
mov dword [esp + 0x1c], 0xed72ef78
mov dword [esp + 0x20], 0xebec
mov ecx, 0x2432deab
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx - 0x2432de9b]
lea esi, [ecx - 0x2432de00]
and esi, edx
or edx, ecx
xor edx, esi
mov esi, edx
xor esi, 0xb4fe5957
mov edi, edx
or edi, 0x86a8
and edi, esi
mov ebx, edi
and ebx, 0xfd
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
xor esi, 2
imul esi, ebx
xor edx, 0xa8
add edx, edi
add edx, esi
inc dl
mov byte [esp + ecx - 0x2432de9b], dl
inc ecx
cmp ecx, 0x2432debf
jne 0x4223b0
add eax, 2
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x422431
lea edx, [esp + 0x72]
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422420
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
mov esi, dword [esp + 0x2c]
je 0x422461
lea edx, [esp + 0x12]
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x422450
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 8]
call fcn.00406160
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x422480
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 8]
push ebx
call fcn.0040dc40
mov dword [esp + 4], eax
push edi
call fcn.004061f0
add esp, 4
push ebx
mov ebx, dword [esp + 8]
call fcn.0040d320
add esp, 4
lea edi, [esp + 0x30]
jmp 0x421b52
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x42251c
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [ebx], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [ebx + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [ebx + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [ebx + 6], dx
add ebx, 8
add esi, 0xfffffffc
jne 0x4224c6
lea edx, [esp + 0x70]
mov word [ebx], 0
mov esi, dword [esp + 0x2c]
cmp byte [esp + 0x6f], 0
js 0x422539
cmp edx, ebx
jne 0x422236
jmp 0x4221bd
push dword [esp + 4]
call fcn.0040d320
lea edx, [esp + 0x74]
add esp, 4
cmp edx, ebx
jne 0x422236
jmp 0x4221bd
mov dword [esp + 0xc], 0
jmp 0x42258e
mov eax, dword [esp + 0x44]
and cl, 1
test eax, eax
je 0x42258a
cmp eax, dword [esp + 0x48]
je 0x42258a
push eax
mov edi, ecx
call fcn.0040d320
mov ecx, edi
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x42258a
xor ecx, ecx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x30]
call fcn.00441350
mov dword [esp + 0x138], 0xc97e796d
mov byte [esp + 0x13c], 0xec
mov dword [esp + 0x13d], 0
mov word [esp + 0x141], 0
mov edx, 0xbffc942c
mov edi, 0x40036bd3
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x40036d0c]
mov dword [esp + 8], eax
mov ebx, edx
and ebx, eax
add ebx, ebx
sub ebx, eax
add ebx, edi
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
mul cl
mov ecx, eax
add cl, byte [esp + 8]
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0x24
mov byte [esp + edx + 0x40036d0c], al
inc edx
dec edi
cmp edx, 0xbffc9437
jne 0x4225d0
movzx eax, byte [esp + 0x138]
test al, al
je 0x42264b
lea ecx, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x422640
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, dword [esp + 0xc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret