Function at 0x41f900
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, 0x2f8
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x140], 0xcfa6a997
mov byte [esp + 0x144], 0x38
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
mov ecx, 0x4ff1354b
mov edx, 0x300ecab4
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx - 0x4ff1340b]
mov ebx, edx
and ebx, 0x200e4a08
mov esi, ecx
and esi, 0x46201017
or esi, ebx
xor esi, edi
xor esi, 0x29df6f48
add esi, 0x7049f588
mov edi, esi
and edi, 0x64
xor esi, 0x64
lea ebx, [esi + edi*2]
add bl, 0x9d
mov byte [esp + ecx - 0x4ff1340b], bl
inc ecx
dec edx
cmp ecx, 0x4ff13553
jne 0x41f960
mov ecx, dword [ebp + 0xc]
mov esi, dword [ecx]
movzx ecx, byte [esp + 0x140]
test cl, cl
je 0x41f9cb
lea edx, [esp + 0x141]
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x41f9c0
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 + 0x48]
lea edx, [esp + 0x58]
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.00421ec0
add esp, 0x18
test al, al
je 0x420d4f
mov dword [esp + 0x140], 0x21c9b7c8
mov byte [esp + 0x144], 0x34
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov edx, 0x76
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0xca]
mov ebx, eax
mov edi, eax
and ebx, edx
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
add al, 0xb2
mov byte [esp + edx + 0xca], al
inc edx
cmp edx, 0x81
jne 0x41fa50
movzx eax, byte [esp + 0x140]
test al, al
je 0x41fabb
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41fab0
mov byte [esi], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x134], edx
mov dword [esp + 0x130], ecx
mov dword [esp + 0x138], eax
mov dword [esp + 0x78], 0x22da16d1
mov dword [esp + 0x7c], 0xcdce2bc0
mov dword [esp + 0x80], 0xe7f3c22d
mov dword [esp + 0x84], 0xf8f9feff
mov dword [esp + 0x88], 0xd2dbe528
mov dword [esp + 0x8c], 0xedd6d4c2
mov dword [esp + 0x90], 0xecede2e3
mov dword [esp + 0x94], 0xe4f1393a
mov dword [esp + 0x98], 0xba9f32df
mov dword [esp + 0x9c], 0x4848ae9f
mov dword [esp + 0xa0], 0xa681bc9c
mov dword [esp + 0xa4], 0x87a8a546
mov dword [esp + 0xa8], 0x9caa4288
mov dword [esp + 0xac], 0x5c5d9a9e
mov dword [esp + 0xb0], 0x57819a5b
mov dword [esp + 0xb4], 0x88898e8f
mov dword [esp + 0xb8], 0x6297a55f
mov dword [esp + 0xbc], 0xb0ad8cb5
mov dword [esp + 0xc0], 0xbcb39d80
mov dword [esp + 0xc4], 0xa1b9bebf
mov dword [esp + 0xc8], 0xa4a5ba8e
mov dword [esp + 0xcc], 0x7a93bea7
mov dword [esp + 0xd0], 0xb3be9eba
mov dword [esp + 0xd4], 0x95ba9d9e
mov dword [esp + 0xd8], 0x5455aaab
mov dword [esp + 0xdc], 0x72424e83
mov dword [esp + 0xe0], 0x895f8253
mov dword [esp + 0xe4], 0x58457c47
mov dword [esp + 0xe8], 0x44455a5b
mov dword [esp + 0xec], 0x74414647
mov dword [esp + 0xf0], 0x4e9b9e5f
mov dword [esp + 0xf4], 0x48494e4f
mov dword [esp + 0xf8], 0x5b49689d
mov dword [esp + 0xfc], 0x6fa66a77
mov byte [esp + 0x100], 0x30
mov byte [esp + 0x103], 0
mov word [esp + 0x101], 0
mov eax, 0x40664c1e
nop
nop
movzx ecx, byte [esp + eax - 0x40664ba6]
mov edx, ecx
and edx, eax
add dl, dl
sub cl, dl
movzx ecx, cl
add ecx, eax
add cl, 0x6a
mov byte [esp + eax - 0x40664ba6], cl
inc eax
cmp eax, 0x40664caa
jne 0x41fc70
mov dword [esp + 0x140], 0x74a656aa
mov dword [esp + 0x144], 0xdc698bcc
mov dword [esp + 0x148], 0xf1286cac
mov dword [esp + 0x14c], 0xcdcacbc8
mov dword [esp + 0x150], 0xd97ace4b
mov dword [esp + 0x154], 0xfdf15898
mov dword [esp + 0x158], 0xd9c6c7c4
mov dword [esp + 0x15c], 0x85ea4080
mov dword [esp + 0x160], 0x70a61b59
mov dword [esp + 0x164], 0x90e167e
mov dword [esp + 0x168], 0xf50a0b08
mov dword [esp + 0x16c], 0xf1f6f7f4
mov dword [esp + 0x170], 0xa476867a
mov dword [esp + 0x174], 0xbe7a6b1c
mov dword [esp + 0x178], 0x3ebb7ffa
mov dword [esp + 0x17c], 0x3d3a3b38
mov dword [esp + 0x180], 0x691e4c64
mov dword [esp + 0x184], 0x355677ab
mov dword [esp + 0x188], 0x9bda86c
mov dword [esp + 0x18c], 0x750a0b08
mov dword [esp + 0x190], 0x10e0f34
mov dword [esp + 0x194], 0x439f5b00
mov dword [esp + 0x198], 0x479b5f64
mov dword [esp + 0x19c], 0x8b874360
mov dword [esp + 0x1a0], 0x111e1f1c
mov dword [esp + 0x1a4], 0x71568c4c
mov dword [esp + 0x1a8], 0x798d4c14
mov dword [esp + 0x1ac], 0x6decb230
mov dword [esp + 0x1b0], 0x616e6f6c
mov dword [esp + 0x1b4], 0x3d626360
mov dword [esp + 0x1b8], 0x6e676dff
mov dword [esp + 0x1bc], 0x7d7a7b78
mov dword [esp + 0x1c0], 0x1522e224
mov dword [esp + 0x1c4], 0x56012b70
mov byte [esp + 0x1c8], 0x74
mov dword [esp + 0x1cc], 0
mov dword [esp + 0x1c9], 0
lea eax, [esp + 0x140]
mov ecx, 0x95276d2a
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax]
mov edx, ecx
or edx, ebx
lea edi, [ecx + 0x6ad89300]
and edi, ebx
not edx
or edx, edi
mov edi, edx
and edi, 0x56
xor edx, 0xd6
lea edx, [edx + edi*2]
inc dl
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x95276c9a
jne 0x41fe40
lea edx, [esp + 0x78]
lea eax, [esp + 0x140]
lea ecx, [esp + 0x130]
push edx
push 0x88
push eax
lea edi, [esp + 0x3c]
push edi
call fcn.0043f1d0
mov dword [esp + 0x12c], edx
mov dword [esp + 0x128], eax
xor ebx, ebx
or eax, edx
je 0x420d51
mov dword [esp + 0x140], 0xfb146b18
mov byte [esp + 0x144], 0xe0
mov word [esp + 0x145], 0
mov byte [esp + 0x147], 0
nop
mov eax, ebx
add al, 0x29
xor al, byte [esp + ebx + 0x140]
add al, 0x33
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 8
jne 0x41fed0
movzx eax, byte [esp + 0x140]
test al, al
je 0x41ff0b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff00
mov byte [esi], 0
lea eax, [esp + 0x128]
lea ecx, [esp + 0x130]
push 0
push 8
push eax
push edi
call fcn.0043f1d0
mov dword [esp + 0x124], edx
mov dword [esp + 0x120], eax
xor ebx, ebx
or eax, edx
je 0x420d51
mov dword [esp + 0x140], 0x993c3c02
mov byte [esp + 0x144], 0x9c
mov dword [esp + 0x145], 0
nop
nop
nop
mov eax, ebx
add al, 0x64
xor al, byte [esp + ebx + 0x140]
add al, 0xc
mov byte [esp + ebx + 0x140], al
inc ebx
cmp ebx, 9
jne 0x41ff60
movzx eax, byte [esp + 0x140]
test al, al
je 0x41ff9b
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x41ff90
mov byte [esi], 0
lea eax, [esp + 0x120]
lea edx, [esp + 0x4c]
lea ecx, [esp + 0x30]
push 0
push 8
push eax
push edx
call fcn.0043e7a0
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x50]
je 0x420d4f
mov dword [esp + 0x140], 0x1fa919b5
mov dword [esp + 0x144], 0xe3461db9
mov dword [esp + 0x148], 0xe743e14b
mov dword [esp + 0x14c], 0xeb4fe516
mov dword [esp + 0x150], 0xef4be950
lea eax, [esp + 0x154]
mov dword [esp + 8], eax
mov word [esp + 0x154], 0xedec
mov dword [esp + 0x156], 0
mov byte [esp + 0x15a], 0
mov edx, 0xe0e3d2fa
mov dword [esp + 4], 0x1f1c2d05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx + 0x1f1c2e46]
mov ecx, edx
and ecx, ebx
add ecx, ecx
mov edi, ebx
sub edi, ecx
mov eax, ecx
sub eax, ebx
add eax, dword [esp + 4]
or eax, 0x1d
add ebx, eax
sub ebx, ecx
add edi, edx
or edi, 0xe2
and edi, eax
add ebx, edx
add ebx, ebx
sub ebx, edi
add bl, 2
mov byte [esp + edx + 0x1f1c2e46], bl
inc edx
dec dword [esp + 4]
cmp edx, 0xe0e3d315
jne 0x420040
lea edi, [esp + 0x2de]
lea eax, [esp + 0x140]
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0x2f2]
mov ecx, 1
mov eax, dword [esp + 8]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 0x140], 0x99060531
mov byte [esp + 0x144], 0x9c
mov dword [esp + 0x145], 0
mov word [esp + 0x149], 0
mov eax, 0xa4
mov ecx, 0x5b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax + 0x9c]
mov edi, edx
not edi
or edi, ecx
or edx, eax
xor edx, edi
mov bl, 0xcb
sub bl, dl
mov byte [esp + eax + 0x9c], bl
inc eax
dec ecx
cmp eax, 0xaf
jne 0x4200f0
movzx eax, byte [esp + 0x140]
test al, al
je 0x42013b
lea ecx, [esp + 0x141]
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420130
mov byte [esi], 0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x108], ecx
xor ebx, ebx
cmp eax, ecx
je 0x420d51
lea edi, [esp + 0x30]
jmp 0x42017b
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x10c]
add eax, 8
cmp eax, dword [esp + 0x108]
je 0x420ddd
mov dword [esp + 0x44], ebx
mov ecx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0x10c], eax
mov eax, dword [eax + 4]
mov dword [esp + 0x2c], eax
push 0x198
push 0
lea eax, [esp + 0x148]
push eax
call fcn.0040c950
add esp, 0xc
xor ebx, ebx
jmp 0x4201be
lea edi, [esp + 0x30]
inc ebx
cmp ebx, 0xb
je 0x4203d0
mov ecx, edi
push 0
push 0
push 0x198
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x3c]
push dword [esp + 0x1c]
call fcn.0043e650
test eax, eax
js 0x4201b4
mov dword [esp + 4], ebx
cmp byte [esp + 0x210], 0
sete cl
xor cl, 0x31
cmp byte [esp + 0x211], 0
mov byte [esp + 0x60], cl
sete al
xor al, 0x31
mov byte [esp + 0x61], al
cmp byte [esp + 0x212], 0
sete al
xor al, 0x31
mov byte [esp + 0x62], al
cmp byte [esp + 0x2d0], 0
sete al
xor al, 0x31
mov byte [esp + 0x63], al
mov word [esp + 0x64], 0xa
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi + eax], cl
movzx ecx, byte [esp + eax + 0x61]
inc eax
test cl, cl
jne 0x420240
mov byte [esi + eax], 0
movzx ecx, byte [esp + 0x212]
test cl, cl
jne 0x4203c0
cmp byte [esp + 0x210], 0
mov ebx, dword [esp + 0x180]
mov edi, dword [esp + 0x184]
jne 0x420283
mov edx, ebx
or edx, edi
je 0x4203c0
cmp byte [esp + 0x2d0], 0
jne 0x420298
xor ebx, 1
or ebx, edi
je 0x4203c0
add esi, eax
mov dword [esp + 0x78], 0x395b504f
mov byte [esp + 0x7c], 0x3c
mov dword [esp + 0x7d], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x78]
mov edi, eax
and edi, 8
mov ebx, ecx
xor ebx, 0xdcdf65b4
add ebx, edi
xor ebx, edx
add ebx, 0xa69eb8e9
mov edx, ebx
and edx, 1
xor ebx, 1
lea edx, [ebx + edx*2]
add dl, 0x92
mov byte [esp + ecx + 0x78], dl
inc ecx
add eax, 2
cmp ecx, 9
jne 0x4202c0
movzx eax, byte [esp + 0x78]
test al, al
je 0x420320
lea ecx, [esp + 0x79]
mov ebx, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420310
jmp 0x420324
mov ebx, dword [esp + 4]
mov byte [esi], 0
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x10], 0xff676980
mov dword [esp + 0x78], 0xc0c7c6c5
mov word [esp + 0x7c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xb1
xor cl, byte [esp + eax + 0x78]
add cl, 0x8b
mov byte [esp + eax + 0x78], cl
inc eax
cmp eax, 6
jne 0x420350
mov eax, dword [0x450c18]
test eax, eax
je 0x4201b0
mov ecx, dword [esp + 0x78]
xor edx, edx
mov edi, dword [0x450c1c]
nop
cmp dword [edi + edx*8], 0x3568c09b
je 0x420393
inc edx
cmp eax, edx
jne 0x420380
jmp 0x4201b0
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4201b0
lea ecx, [esp + 0x10]
push ecx
push 0
push 2
push dword [0x450c20]
push eax
call fcn.00440770
add esp, 0x14
jmp 0x4201b0
add esi, eax
lea edi, [esp + 0x30]
test cl, cl
jne 0x4203e0
jmp 0x420160
movzx ecx, byte [esp + 0x212]
test cl, cl
je 0x420160
mov dword [esp + 8], esi
call fcn.00404b40
mov dword [esp + 0x2c], eax
push eax
call fcn.00404770
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x78], 0x7e1dd9b
mov byte [esp + 0x7c], pe_nt_image_headers32
lea eax, [esp + 0x7d]
mov byte [eax + 4], 0
mov dword [eax], 0
mov eax, 0x2be946bf
mov ebx, 0xd416b941
nop
movzx edi, byte [esp + eax - 0x2be94647]
lea esi, [ebx - 1]
mov ecx, esi
or ecx, edi
mov edx, esi
and edx, edi
xor edx, ecx
and edx, eax
lea ebx, [ebx + edx*2]
add edx, edx
not edx
add edx, eax
and edx, edi
not edi
and edi, ebx
sub edx, edi
mov ecx, edx
and ecx, 1
or edx, 1
add edx, ecx
add dl, 0x44
mov byte [esp + eax - 0x2be94647], dl
inc eax
mov ebx, esi
cmp eax, 0x2be946c9
jne 0x420420
movzx eax, byte [esp + 0x78]
test al, al
je 0x420490
lea ecx, [esp + 0x79]
mov esi, dword [esp + 8]
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 0x420480
jmp 0x420494
mov esi, dword [esp + 8]
mov byte [esi], 0
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0xc]
xor ecx, ecx
nop
movzx ebx, word [eax + ecx]
movzx edi, word [esp + ecx + 0x2de]
test bx, bx
je 0x4204b9
add ecx, 2
cmp bx, di
je 0x4204a0
mov eax, dword [esp + 0x178]
mov edx, dword [esp + 0x17c]
mov ecx, eax
or ecx, edx
je 0x420510
mov dword [esp + 4], eax
lea ecx, [esp + 0x30]
push 0
push 0
push 0x40
lea eax, [esp + 0x84]
push eax
push edx
push dword [esp + 0x18]
call fcn.0043e650
test eax, eax
js 0x42051a
xor eax, eax
cmp bx, di
sete al
lea ecx, [esp + 0x30]
lea edx, [esp + 0x78]
push eax
push dword [esp + 0x10]
call fcn.00422a00
add esp, 8
jmp 0x42051c
mov dword [esp + 4], 0
jmp 0x420520
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 0x78], 0xc1646461
mov byte [esp + 0x7c], 0xd4
lea eax, [esp + 0x7d]
mov byte [eax + 4], 0
mov dword [eax], 0
mov edx, 0x9552a22e
movzx edi, byte [esp + edx + 0x6aad5e4a]
mov ebx, edi
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0x3d
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
add al, 0x1a
mov byte [esp + edx + 0x6aad5e4a], al
inc edx
cmp edx, 0x9552a238
jne 0x420540
movzx eax, byte [esp + 0x78]
test al, al
je 0x4205b0
lea ecx, [esp + 0x79]
mov ebx, dword [esp + 4]
lea edi, [esp + 0x30]
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4205a0
jmp 0x4205b8
mov ebx, dword [esp + 4]
lea edi, [esp + 0x30]
mov byte [esi], 0
push dword [esp + 0xc]
call fcn.00404940
add esp, 4
test eax, eax
setne cl
and cl, bl
cmp cl, 1
jne 0x420750
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x298]
mov edx, dword [esp + 0x29c]
add eax, 0x28
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x124]
push ebx
push edx
push eax
call fcn.0043e650
test eax, eax
mov dword [esp + 8], esi
js 0x4209b0
mov eax, dword [esp + 0x118]
mov edx, dword [esp + 0x11c]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 8
lea ebx, [esp + 0x11c]
push ebx
push edx
push eax
call fcn.0043e650
test eax, eax
js 0x4209b0
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
add eax, 0x10
adc edx, 0
mov ecx, edi
push 0
push 0
push 0x18
lea edi, [esp + 0x6c]
push edi
push edx
push eax
call fcn.0043e650
test eax, eax
js 0x4209b0
cmp byte [esp + 0x77], 0
lea edi, [esp + 0x60]
js 0x420759
mov dword [esp + 0x10], 0xf967fb07
mov dword [esp + 0x14], 0xe578e713
mov dword [esp + 0x18], 0xe12ee3c4
mov dword [esp + 0x1c], 0xed72ef0f
mov dword [esp + 0x20], 0xe90eeb03
mov dword [esp + 0x24], 0x97e8
mov eax, 0x4f3b9c2b
mov ecx, 0xb0c463d4
nop
nop
movzx edx, byte [esp + eax - 0x4f3b9c1b]
mov ebx, eax
and ebx, edx
add ebx, ebx
sub ebx, edx
add ebx, ecx
and ebx, eax
add bl, bl
sub dl, bl
movzx edx, dl
add edx, eax
add dl, 0x29
mov byte [esp + eax - 0x4f3b9c1b], dl
inc eax
dec ecx
cmp eax, 0x4f3b9c43
jne 0x4206c0
movzx ebx, word [esp + 0x10]
test bx, bx
mov dword [esp + 0x40], edi
je 0x4207b0
lea eax, [esp + 0x10]
mov edx, edi
mov dword [esp + 4], edi
jmp 0x42071c
movzx ebx, word [eax]
test bx, bx
je 0x4207c3
movzx edi, word [edx]
test di, di
je 0x4207b8
add eax, 2
add edx, 2
mov ecx, dword [esp + 4]
add ecx, 2
cmp di, bx
je 0x420740
mov dword [esp + 4], ecx
mov edx, ecx
je 0x420710
lea eax, [esp + 0x10]
jmp 0x420710
mov dword [esp + 4], ebx
jmp 0x420d33
mov ebx, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov eax, ebx
or eax, edi
je 0x4209b0
mov eax, dword [esp + 0x68]
lea ecx, [eax*2 + 2]
inc eax
mov dword [esp + 4], ecx
mov eax, ecx
jns 0x420784
mov eax, 0xffffffff
push eax
call fcn.0040c8d0
add esp, 4
lea ecx, [esp + 0x30]
push 0
push 0
push dword [esp + 0xc]
push eax
push edi
mov edi, eax
push ebx
call fcn.0043e650
test eax, eax
jns 0x420684
jmp 0x4209b0
mov eax, edi
lea edx, [esp + 0x78]
jmp 0x4207d5
lea ebx, [esp + 0x78]
mov edx, ebx
jmp 0x42098e
lea ebx, [esp + 0x78]
mov edx, ebx
mov eax, dword [esp + 4]
test eax, eax
je 0x42098e
movzx edi, word [eax + 0x14]
mov ebx, edx
test di, di
je 0x42098e
mov ebx, eax
add eax, 0x14
xor ecx, ecx
nop
nop
nop
nop
nop
cmp di, 0x5c
je 0x42080a
movzx edi, word [ebx + ecx + 0x16]
add ecx, 2
test di, di
jne 0x4207f0
mov ebx, edx
jmp 0x42098e
mov ebx, edx
test ecx, ecx
je 0x4208c6
sar ecx, 1
mov esi, ecx
and esi, 3
je 0x420857
mov ebx, edx
xor edi, edi
mov dword [esp + 4], esi
nop
nop
nop
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 + 4]
add ebx, 2
inc edi
cmp esi, edi
jne 0x420830
mov esi, ecx
sub esi, edi
lea edx, [esp + 0x78]
jmp 0x42085b
mov ebx, edx
mov esi, ecx
dec ecx
cmp ecx, 3
jb 0x4208c6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
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 0x420870
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x2d0], 0
je 0x4208de
mov esi, dword [esp + 8]
jmp 0x42098e
mov dword [esp + 0x10], 0xb77f89a8
mov dword [esp + 0x14], 0xb35db526
mov dword [esp + 0x18], 0xbf55b123
mov dword [esp + 0x1c], 0xbb53bd2e
mov dword [esp + 0x20], 0xa735b924
mov word [esp + 0x24], 0xa5a4
lea eax, [esp + 0x26]
mov byte [eax + 2], 0
mov word [eax], 0
mov eax, 0x3bdce87
mov esi, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x3bdce77]
lea edx, [eax - 0x3bdce29]
and edx, ecx
add edx, edx
sub ecx, edx
add ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esp + eax - 0x3bdce77], cl
inc eax
cmp eax, 0x3bdcea0
jne 0x420930
movzx eax, word [esp + 0x10]
test ax, ax
je 0x420985
lea ecx, [esp + 0x12]
lea edx, [esp + 0x78]
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420972
jmp 0x420989
lea edx, [esp + 0x78]
mov word [ebx], 0
cmp byte [esp + 0x77], 0
mov edi, edx
jns 0x4209a7
push dword [esp + 0x40]
call fcn.0040c8e0
lea edi, [esp + 0x7c]
add esp, 4
cmp edi, ebx
jne 0x420a76
nop
mov dword [esp + 0x10], 0xc150c78f
mov dword [esp + 0x14], 0xcd53c3ad
mov dword [esp + 0x18], 0xc958cfa5
mov dword [esp + 0x1c], 0xf556cba3
mov dword [esp + 0x20], 0xf1f6f765
mov dword [esp + 0x24], 0
mov edx, 0xea42cc51
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x15bd33bf]
mov ebx, eax
not ebx
or ebx, edx
add ebx, eax
mov edi, eax
inc bl
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
add al, 0x6b
mov byte [esp + edx + 0x15bd33bf], al
inc edx
cmp edx, 0xea42cc69
jne 0x4209f0
movzx eax, word [esp + 0x10]
lea edi, [esp + 0x78]
mov ebx, edi
test ax, ax
je 0x420a71
lea ecx, [esp + 0x12]
mov ebx, edi
nop
nop
nop
nop
nop
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 0x420a60
mov word [ebx], 0
mov edx, ebx
sub edx, edi
mov ecx, edx
shr ecx, 2
mov eax, edi
mov edi, esi
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov ecx, edx
and ecx, 0xfffffffc
lea edi, [esi + ecx]
lea eax, [esp + ecx]
add eax, 0x78
mov dword [esp + 4], edx
shr edx, 1
and edx, 1
mov esi, eax
mov dword [esp + 0x40], edi
mov ecx, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
test bl, 1
je 0x420ac4
mov ecx, dword [esp + 4]
and ecx, 2
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x40]
mov byte [eax + ecx], dl
push 0xa
push 0xb
lea eax, [esp + 0x68]
push eax
push dword [esp + 0x18]
call fcn.00422740
add esp, 0x10
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0xc5dddb66
mov dword [esp + 0x14], 0x75928c90
mov esi, 0x48f9ea15
mov edi, 0xb70615ea
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + esi - 0x48f9ea05]
mov ebx, edx
xor ebx, esi
or ebx, edi
mov eax, ebx
shr al, 1
and al, 1
mov ecx, ebx
not cl
mov ah, cl
and ah, 0x1d
mul ah
add al, al
sub dl, al
test bl, 2
sete al
or cl, 2
mul cl
add al, al
sub dl, al
movzx eax, dl
add eax, esi
add al, 0x97
mov byte [esp + esi - 0x48f9ea05], al
inc esi
dec edi
cmp esi, 0x48f9ea1d
jne 0x420b00
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
add esi, edx
movzx eax, byte [esp + 0x10]
test al, al
je 0x420b7d
lea ecx, [esp + 0x11]
mov edi, dword [esp + 0xc]
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 0x420b70
jmp 0x420b81
mov edi, dword [esp + 0xc]
mov byte [esi], 0
movzx eax, byte [edi]
test al, al
je 0x420b9b
inc edi
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [edi]
inc edi
test al, al
jne 0x420b90
mov byte [esi], 0xa
mov eax, dword [ebp + 0x14]
mov ebx, dword [eax]
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne 0x420bb0
sar eax, 1
sar edx, 1
lea ecx, [edx + eax]
add ecx, 0xa
test ecx, ecx
jns 0x420bd0
mov eax, 0xffffffff
jmp 0x420bd9
add edx, eax
lea eax, [edx*2 + 0x14]
push eax
call fcn.0040c8d0
add esp, 4
movzx ecx, word [ebx]
mov edi, eax
test cx, cx
je 0x420c11
add ebx, 2
mov edi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x420c00
mov dword [esp + 8], eax
inc esi
mov eax, esi
mov word [edi], 0x2f
mov dword [esp + 0x10], 0x79c87b55
mov dword [esp + 0x14], 0x7df77fe3
mov dword [esp + 0x18], 0x71e6732e
mov dword [esp + 0x1c], 0x75e277f8
mov word [esp + 0x20], 0x6b74
mov dword [esp + 0x22], 0
mov ecx, 0x40
lea edx, [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [edx]
lea esi, [ebx + ebx]
not esi
add esi, ebx
and esi, 0x76
and ebx, 0xffffff89
or ebx, esi
xor ebx, ecx
xor bl, 0x89
add bl, 0x45
mov byte [edx], bl
inc edx
dec ecx
cmp ecx, 0x2a
jne 0x420c60
add edi, 2
movzx ecx, word [esp + 0x78]
test cx, cx
je 0x420cb1
lea edx, [esp + 0x7a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420ca0
mov word [edi], 0
movzx ecx, word [esp + 0x10]
test cx, cx
je 0x420ce3
lea edx, [esp + 0x12]
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x420cd0
jmp 0x420ce5
mov esi, eax
mov word [edi], 0
mov ebx, 0xffffffff
push dword [esp + 0x2c]
call fcn.00405740
add esp, 4
mov edi, eax
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x420d00
mov ecx, dword [ebp + 8]
push ebx
push edi
mov ebx, dword [esp + 0x10]
push ebx
call fcn.0040d220
mov dword [esp + 4], eax
push edi
call fcn.004057d0
add esp, 4
push ebx
call fcn.0040c8e0
add esp, 4
lea edi, [esp + 0x30]
push dword [esp + 0x2c]
call fcn.00404980
add esp, 4
mov ebx, dword [esp + 0x44]
and bl, 1
or bl, byte [esp + 4]
jmp 0x420164
xor ebx, ebx
lea ecx, [esp + 0x30]
call fcn.0043ded0
mov dword [esp + 0x140], 0x3baaaf9b
mov byte [esp + 0x144], 0x20
mov dword [esp + 0x145], 0
mov dword [esp + 0x148], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add al, 0x49
xor al, byte [esp + ecx + 0x140]
add al, 0x93
mov byte [esp + ecx + 0x140], al
inc ecx
cmp ecx, 0xc
jne 0x420d90
movzx eax, byte [esp + 0x140]
test al, al
je 0x420dcb
lea ecx, [esp + 0x141]
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x420dc0
mov byte [esi], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esp + 0x4c]
and bl, 1
test eax, eax
je 0x420d51
cmp eax, dword [esp + 0x50]
je 0x420d51
push eax
call fcn.0040c8e0
add esp, 4
mov dword [esp + 0x4c], 0
jmp 0x420d51