Function at 0x4207e0
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 0x420840
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x138]
test cl, cl
je 0x42089b
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 0x420890
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.00422c00
add esp, 0x18
test al, al
je 0x421956
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 0x420920
movzx eax, byte [esp + 0x138]
test al, al
je 0x42096b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420960
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 0x420b30
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 0x420d00
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.00441ad0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
xor ecx, ecx
or eax, edx
je 0x42198a
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 0x420db0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420dfb
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 0x420df0
mov byte [esi], 0
lea eax, [esp + 0x120]
lea ecx, [esp + 0x128]
push 0
push 8
push eax
push edi
call fcn.00441ad0
mov dword [esp + 0x11c], edx
mov dword [esp + 0x118], eax
xor ecx, ecx
or eax, edx
je 0x42198a
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 0x420e60
movzx eax, byte [esp + 0x138]
test al, al
je 0x420e9b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420e90
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.004410e0
mov eax, dword [esp + 0x44]
xor ecx, ecx
cmp eax, dword [esp + 0x48]
je 0x42198a
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 0x420ef0
movzx eax, byte [esp + 0x138]
test al, al
je 0x420f2b
lea ecx, [esp + 0x139]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420f20
mov byte [esi], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x100], ecx
cmp eax, ecx
je 0x421988
xor ecx, ecx
lea edi, [esp + 0x30]
jmp 0x420f7e
xor ebx, ebx
push dword [esp + 8]
call fcn.004047e0
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 0x421960
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.0040c7a0
add esp, 0xc
xor ebx, ebx
jmp 0x420fbe
lea edi, [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x421150
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.00440f70
test eax, eax
js 0x420fb4
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 0x421030
mov byte [esi + ecx], 0
cmp byte [esp + 0x20a], 0
jne 0x421170
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 0x421070
movzx eax, byte [esp + 0x70]
test al, al
je 0x4210bb
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 0x4210b0
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 0x4210e0
mov eax, dword [0x453040]
test eax, eax
je 0x420fb0
mov ecx, dword [esp + 0x70]
xor edx, edx
mov edi, dword [0x453044]
nop
cmp dword [edi + edx*8], 0xf8fd61b8
je 0x421123
inc edx
cmp eax, edx
jne 0x421110
jmp 0x420fb0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x420fb0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x453048]
push eax
call fcn.00443090
add esp, 0x14
jmp 0x420fb0
cmp byte [esp + 0x20a], 0
jne 0x421172
mov ecx, dword [esp + 0xc]
jmp 0x420f67
add esi, ecx
call fcn.004049a0
mov dword [esp + 8], eax
push eax
call fcn.004045d0
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 0x4211b0
movzx eax, byte [esp + 0x70]
test al, al
je 0x421210
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 0x421200
jmp 0x421214
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 0x421260
push 0
push 0
push 0x40
mov ebx, ecx
lea edi, [esp + 0x7c]
push edi
push edx
push eax
call fcn.00440f70
test eax, eax
js 0x42126b
mov ecx, ebx
mov edx, edi
push dword [esp + 4]
call fcn.00423430
add esp, 4
mov dword [esp], eax
jmp 0x421272
mov eax, esi
mov dword [esp], 0
jmp 0x421274
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 0x4212a0
movzx ecx, byte [esp + 0x70]
test cl, cl
je 0x421300
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 0x4212f0
jmp 0x421306
mov esi, eax
lea edi, [esp + 0x30]
mov byte [esi], 0
cmp byte [esp], 0
je 0x420f50
push dword [esp + 4]
call fcn.004047a0
add esp, 4
test eax, eax
je 0x42148e
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.00440f70
test eax, eax
mov dword [esp + 0x2c], esi
js 0x4215b9
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.00440f70
test eax, eax
js 0x4215b9
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.00440f70
test eax, eax
js 0x4215b9
cmp byte [esp + 0x6f], 0
lea ebx, [esp + 0x58]
js 0x421495
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 0x421420
movzx edi, word [esp + 0x10]
test di, di
mov dword [esp + 4], ebx
je 0x4214c5
lea eax, [esp + 0x10]
mov edx, ebx
mov dword [esp], ebx
jmp 0x421468
movzx edi, word [eax]
test di, di
je 0x4214d8
movzx ebx, word [edx]
test bx, bx
je 0x4214cd
add edx, 2
add eax, 2
mov ecx, dword [esp]
add ecx, 2
cmp bx, di
je 0x421486
mov dword [esp], ecx
mov edx, ecx
je 0x421460
lea eax, [esp + 0x10]
jmp 0x421460
mov bl, 1
jmp 0x420f52
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, ecx
or eax, edx
je 0x4215b9
mov edi, dword [esp + 0x60]
mov ebx, edi
inc ebx
mov dword [esp], ecx
mov dword [esp + 4], edx
jns 0x421569
mov eax, 0xffffffff
jmp 0x421570
mov eax, ebx
lea edx, [esp + 0x70]
jmp 0x4214e9
lea edx, [esp + 0x70]
mov ebx, edx
jmp 0x421925
lea edx, [esp + 0x70]
mov ebx, edx
mov eax, dword [esp]
test eax, eax
je 0x421925
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x421925
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
cmp di, 0x5c
je 0x42151a
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x421500
mov ebx, edx
jmp 0x421925
mov ebx, edx
test ecx, ecx
je 0x42191c
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x4218bc
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 0x421540
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x70]
jmp 0x4218c0
lea eax, [edi*2 + 2]
push eax
call fcn.0040c710
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.00440f70
test eax, eax
jns 0x4213d0
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 0x4215f0
movzx eax, word [esp + 0x10]
mov ebx, edx
test ax, ax
je 0x421631
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 0x421620
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 0x42167b
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 0x4216b0
mov esi, dword [esp + 0x2c]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x4216fb
lea ecx, [esp + 0x11]
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4216f0
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 0x421710
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x421730
mov eax, 0xffffffff
jmp 0x421739
add edx, eax
lea eax, [edx*2 + 0x14]
mov dword [esp + 0x2c], esi
push eax
call fcn.0040c710
add esp, 4
movzx ecx, word [edi]
mov edx, eax
test cx, cx
je 0x421771
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 0x421760
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 0x4217b0
add eax, 2
movzx ecx, word [esp + 0x70]
test cx, cx
je 0x421831
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 0x421820
mov word [eax], 0
movzx ecx, word [esp + 0x10]
test cx, cx
mov esi, dword [esp + 0x2c]
je 0x421861
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 0x421850
mov word [eax], 0
mov ebx, 0xffffffff
push dword [esp + 8]
call fcn.00405560
add esp, 4
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x421880
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 8]
push ebx
call fcn.0040d040
mov dword [esp + 4], eax
push edi
call fcn.004055f0
add esp, 4
push ebx
mov ebx, dword [esp + 8]
call fcn.0040c720
add esp, 4
lea edi, [esp + 0x30]
jmp 0x420f52
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x42191c
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 0x4218c6
lea edx, [esp + 0x70]
mov word [ebx], 0
mov esi, dword [esp + 0x2c]
cmp byte [esp + 0x6f], 0
js 0x421939
cmp edx, ebx
jne 0x421636
jmp 0x4215bd
push dword [esp + 4]
call fcn.0040c720
lea edx, [esp + 0x74]
add esp, 4
cmp edx, ebx
jne 0x421636
jmp 0x4215bd
mov dword [esp + 0xc], 0
jmp 0x42198e
mov eax, dword [esp + 0x44]
and cl, 1
test eax, eax
je 0x42198a
cmp eax, dword [esp + 0x48]
je 0x42198a
push eax
mov edi, ecx
call fcn.0040c720
mov ecx, edi
add esp, 4
mov dword [esp + 0x44], 0
jmp 0x42198a
xor ecx, ecx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x30]
call fcn.00440750
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 0x4219d0
movzx eax, byte [esp + 0x138]
test al, al
je 0x421a4b
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 0x421a40
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