Function at 0x421210
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xf0
mov esi, esp
mov edi, ecx
mov ebx, dword [ebp + 0xc]
mov dword [esi + 0xdc], 0
mov dword [esi + 0xd8], 0
mov dword [esi + 0xd4], 0
mov dword [esi + 0xd0], 0
mov dword [esi + 0xcc], 0
mov dword [esi + 0xc0], 0
mov dword [esi + 0xc4], 2
mov dword [esi + 0xc8], 1
push 0xc904973f
push dword [0x44df90]
call fcn.004412a0
add esp, 8
lea ecx, [esi + 0x3c]
lea edx, [esi + 0xc0]
push ecx
push edx
push ebx
push dword [ebp + 8]
call eax
test eax, eax
jne 0x421340
push 0x39be051d
push dword [0x44df90]
call fcn.004412a0
add esp, 8
mov dword [esi + 0x10], eax
push 0x847b02a2
push dword [0x44df90]
call fcn.004412a0
add esp, 8
mov dword [esi + 0xc], eax
push 0x2e775759
push dword [0x44df90]
call fcn.004412a0
add esp, 8
mov dword [esi + 0x14], eax
mov ebx, dword [esi + 0x3c]
jmp 0x4212f3
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x421325
push dword [ebx + 0xc]
push dword [ebx + 8]
push dword [ebx + 4]
call dword [esi + 0x10]
mov dword [edi], eax
cmp eax, 0xffffffff
je 0x4212f0
push dword [ebx + 0x10]
push dword [ebx + 0x18]
push eax
call dword [esi + 0xc]
test eax, eax
je 0x421325
push dword [edi]
call dword [esi + 0x14]
mov dword [edi], 0xffffffff
jmp 0x4212f0
push 0x18c354a9
push dword [0x44df90]
call fcn.004412a0
add esp, 8
push dword [esi + 0x3c]
call eax
mov ebx, dword [ebp + 0xc]
xor eax, eax
cmp dword [edi], 0xffffffff
je 0x421da7
mov dword [esi + 0x30], edi
mov ecx, dword [ebp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x421360
lea edx, [ecx + eax]
dec edx
mov eax, ecx
not eax
mov dword [esi + 0x10], edx
and eax, edx
mov dword [esi + 0x18], eax
xor edx, edx
mov edi, dword [ebp + 8]
nop
nop
cmp byte [edi + edx], 0
lea edx, [edx + 1]
jne 0x421380
lea eax, [edi + edx]
dec eax
not edi
mov dword [esi + 0x14], eax
and edi, eax
mov dword [esi + 0xc], edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + edx], 0
lea edx, [edx + 1]
jne 0x4213a0
mov edi, dword [esi + 0x10]
xor edi, ecx
mov eax, dword [esi + 0x14]
xor eax, dword [ebp + 8]
add eax, edi
add edx, ebx
dec edx
mov edi, ebx
not ebx
and ebx, edx
xor edx, edi
add edx, eax
mov eax, dword [esi + 0x18]
add eax, dword [esi + 0xc]
add eax, eax
sub eax, edx
lea eax, [eax + ebx*2]
add eax, 0x93
and eax, 0xfffffffc
call fcn.004086f0
mov eax, esp
and eax, 0xfffffff0
mov dword [esi + 0x10], eax
mov esp, eax
mov dword [esi + 0x40], 0xd7d6d980
mov dword [esi + 0x44], 0xb9b7bad4
mov dword [esi + 0x48], 0xe3a0a489
mov dword [esi + 0x4c], 0x95cacec3
mov dword [esi + 0x50], 0x51b0
mov byte [esi + 0x54], 0
xor edi, edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edi
and eax, 0x30
mov ebx, edx
xor ebx, 0x98
add ebx, eax
xor bl, byte [esi + edx + 0x40]
add bl, 8
mov byte [esi + edx + 0x40], bl
inc edx
add edi, 2
cmp edx, 0x15
jne 0x421420
mov dword [esi + 0x1c], 0x3566467
mov byte [esi + 0x20], 0x24
mov dword [esi + 0x21], 0
mov word [esi + 0x25], 0
xor eax, eax
nop
nop
nop
mov edx, eax
add dl, 0xb8
xor dl, byte [esi + eax + 0x1c]
add dl, 0x68
mov byte [esi + eax + 0x1c], dl
inc eax
cmp eax, 0xb
jne 0x421460
movzx eax, byte [esi + 0x1c]
mov ebx, dword [esi + 0x10]
test al, al
mov edi, dword [ebp + 8]
je 0x42149b
lea edx, [esi + 0x1d]
mov ebx, dword [esi + 0x10]
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x421490
mov byte [ebx], 0
movzx eax, byte [ecx]
test al, al
je 0x4214bb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4214b0
mov byte [ebx], 0
movzx eax, byte [esi + 0x40]
test al, al
je 0x4214db
lea ecx, [esi + 0x41]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x4214d0
mov byte [ebx], 0
movzx eax, byte [edi]
test al, al
je 0x4214fb
inc edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x4214f0
mov dword [esi + 0xc], ebx
mov byte [ebx], 0x3a
mov dword [esi + 0x40], 0xaf8b3735
mov dword [esi + 0x44], 0x8783ab97
mov dword [esi + 0x48], 0xbc467f85
mov dword [esi + 0x4c], 0xb8bd8381
mov dword [esi + 0x50], 0xbb8b868f
mov dword [esi + 0x54], 0x80552321
mov dword [esi + 0x58], 0xb0b38382
mov dword [esi + 0x5c], 0x8989bc80
mov dword [esi + 0x60], 0x8fab7946
mov dword [esi + 0x64], 0xa7a38bb7
mov dword [esi + 0x68], 0xb0080ca5
mov dword [esi + 0x6c], 0xb067a2a1
mov dword [esi + 0x70], 0x9cb9afad
mov dword [esi + 0x74], 0xe7d7a2ab
mov dword [esi + 0x78], 0xeed33e1d
mov dword [esi + 0x7c], 0xcc32152a
mov dword [esi + 0x80], 0x2fd9efd5
mov dword [esi + 0x84], 0xdace30eb
mov dword [esi + 0x88], 0x2c27ced5
mov dword [esi + 0x8c], 0xd83fc8c9
mov dword [esi + 0x90], 0x3925f9d8
mov dword [esi + 0x94], 0xe819cc24
mov dword [esi + 0x98], 0x595b0cff
mov dword [esi + 0x9c], 0x36fdf0e3
mov dword [esi + 0xa0], 0xe8f8fce3
mov dword [esi + 0xa4], 0xe6edfacf
mov dword [esi + 0xa8], 0xe2fc2cd4
mov dword [esi + 0xac], 0xd8e3d2d2
mov dword [esi + 0xb0], 0x1e2e17da
mov dword [esi + 0xb4], 0xbebc401b
mov word [esi + 0xb8], 0xb1be
mov byte [esi + 0xbe], 0
mov dword [esi + 0xba], 0
lea eax, [esi + 0x40]
mov ecx, 0x94b5d275
nop
movzx edi, byte [eax]
mov edx, ecx
or edx, edi
lea ebx, [ecx + 0x6b4a2e00]
and ebx, edi
not edx
or edx, ebx
mov edi, edx
and edi, 0x4d
xor edx, 0xe78d1c4d
lea edi, [edx + edi*2]
and edx, 1
xor edi, 1
lea edx, [edi + edx*2]
mov byte [eax], dl
inc eax
dec ecx
cmp ecx, 0x94b5d1f6
jne 0x421620
mov edx, dword [esi + 0xc]
inc edx
mov ecx, dword [ebp + 0xc]
movzx eax, byte [ecx]
test al, al
je 0x42167b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421670
mov byte [edx], 0
movzx eax, byte [esi + 0x40]
test al, al
je 0x42169b
lea ecx, [esi + 0x41]
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x421690
mov byte [edx], 0
mov edi, edx
mov ebx, dword [esi + 0x10]
sub edi, ebx
push 0xd0026952
push dword [0x44df90]
call fcn.004412a0
add esp, 8
push 0
push edi
push ebx
mov edi, dword [esi + 0x30]
push dword [edi]
call eax
cmp eax, 0xffffffff
jne 0x42170a
cmp dword [edi], 0xffffffff
je 0x42170a
push 0x59ea2086
push dword [0x44df90]
call fcn.004412a0
add esp, 8
push 2
push dword [edi]
call eax
push 0x2e775759
push dword [0x44df90]
call fcn.004412a0
add esp, 8
push dword [edi]
call eax
mov dword [edi], 0xffffffff
xor eax, eax
jmp 0x421da7
cmp eax, 0xffffffff
je 0x421833
push 0x400
call fcn.00408810
add esp, 4
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
add eax, 0x400
mov dword [esi + 0x24], eax
lea eax, [esi + 0x1c]
mov ecx, edi
push eax
call fcn.00421dc0
mov cl, 1
mov dword [esi + 0x10], ecx
test al, al
je 0x421d8f
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x24]
jne 0x4218c1
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
lea eax, [ebx + 1]
mov edi, ebx
shr edi, 1
add edi, ebx
cmp edi, eax
ja 0x42176e
mov edi, eax
push edi
call fcn.00408810
add esp, 4
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x4218b3
mov dword [esi + 0x28], edi
cmp eax, ecx
mov edx, dword [esi + 0xc]
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], eax
jbe 0x42183a
cmp edx, eax
jbe 0x42183a
test ebx, ebx
je 0x42189f
mov edx, dword [esi + 0x14]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x18]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x4217d1
neg edi
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x4217be
add eax, edx
add ecx, edx
add edx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
sub edi, dword [esi + 0xc]
cmp edi, 0xfffffff8
ja 0x42189f
neg edx
xor edi, edi
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x4217e4
jmp 0x42189f
xor eax, eax
jmp 0x421da7
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
mov dword [esi + 0xc], eax
add edx, dword [esi + 0x10]
and ebx, 3
mov ecx, ebx
shr ecx, 1
mov eax, edx
mov edi, dword [esi + 0xc]
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov edi, dword [esi + 0xc]
mov eax, ebx
xor eax, 0xfffffffe
or ebx, 1
and ebx, eax
je 0x42189f
mov ecx, dword [esi + 0x14]
and ecx, 2
movzx eax, byte [edx + ecx]
mov byte [edi + ecx], al
cmp ebx, 1
je 0x42189f
movzx eax, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], al
cmp ebx, 2
je 0x42189f
movzx eax, byte [edx + ecx + 2]
mov byte [edi + ecx + 2], al
push dword [esi + 0x1c]
call fcn.00408820
add esp, 4
mov ebx, dword [esi + 0x14]
mov edi, dword [esi + 0x28]
mov eax, dword [esi + 0x18]
mov dword [esi + 0x1c], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x20], ecx
add edi, eax
mov dword [esi + 0x24], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x20]
inc eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x40], 0xa1aaaba4
mov dword [esi + 0x44], 0x868c8081
mov dword [esi + 0x48], 0xba868494
mov byte [esi + 0x4c], 0xc8
mov dword [esi + 0x4d], 0
mov edx, 0x55
mov edi, 0xaa
nop
movzx ecx, byte [esi + edx - 0x15]
mov eax, edi
xor eax, edx
and eax, ecx
xor eax, edx
add al, 0x57
mov byte [esi + edx - 0x15], al
inc edx
dec edi
cmp edx, 0x66
jne 0x421900
movzx edx, byte [esi + 0x40]
mov eax, dword [esi + 0xc]
mov dword [esi + 0x10], eax
test dl, dl
je 0x42196a
lea ebx, [esi + 0x40]
mov eax, dword [esi + 0xc]
mov edi, eax
mov dword [esi + 0x10], eax
jmp 0x421947
movzx edx, byte [ebx]
test dl, dl
je 0x42196a
movzx eax, byte [edi]
test al, al
je 0x421d7b
inc edi
inc ebx
mov ecx, dword [esi + 0x10]
inc ecx
cmp al, dl
je 0x421963
mov eax, ecx
mov dword [esi + 0x10], ecx
mov edi, ecx
je 0x421940
lea ebx, [esi + 0x40]
jmp 0x421940
cmp dword [esi + 0x10], 0
je 0x421d7b
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0xc]
jmp 0x42198b
cmp al, dl
mov ecx, dword [esi + 0x30]
je 0x421d8f
mov ebx, dword [esi + 0x18]
cmp edi, ebx
je 0x421b39
mov eax, edi
xor eax, ebx
mov edx, edi
not edx
and edx, ebx
add edx, edx
mov dword [esi + 0x2c], edx
mov dword [esi + 0xc], eax
sub edx, eax
lea ecx, [edi + edx]
mov dword [esi + 0x14], ecx
xor ecx, ebx
mov eax, dword [esi + 0x14]
not eax
and eax, ebx
add eax, eax
mov dword [esi + 0x34], eax
mov ebx, eax
mov dword [esi + 0x38], ecx
sub ebx, ecx
mov dword [esi + 0x18], edx
test edx, edx
mov edx, dword [esi + 0x14]
jns 0x421a50
lea eax, [edx + ebx]
cmp eax, edi
jbe 0x421a50
test ebx, ebx
je 0x421b30
mov ecx, edx
mov eax, edi
add edi, ebx
dec edi
mov edx, ebx
and edx, 7
mov dword [esi + 0x10], edx
mov edx, ebx
mov dword [esi + 0x28], ebx
je 0x421aca
mov ecx, dword [esi + 0x2c]
add ecx, dword [esi + 0x34]
sub ecx, dword [esi + 0xc]
sub ecx, dword [esi + 0x38]
mov dword [esi + 0x2c], ecx
add ecx, eax
dec ecx
mov dword [esi + 0xc], eax
add eax, edx
neg dword [esi + 0x10]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [ecx + ebx]
mov byte [eax + ebx - 1], dl
dec ebx
cmp dword [esi + 0x10], ebx
jne 0x421a20
mov eax, dword [esi + 0xc]
add eax, dword [esi + 0x2c]
add eax, ebx
dec eax
add edi, ebx
add dword [esi + 0x28], ebx
jmp 0x421ace
mov ecx, ebx
shr ecx, 2
mov dword [esi + 0xc], edi
mov edi, dword [esi + 0xc]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov eax, ebx
mov dword [esi + 0x28], ebx
mov edx, ebx
and edx, 0xfffffffc
add dword [esi + 0xc], edx
add edx, dword [esi + 0x14]
and eax, 3
mov ecx, eax
shr ecx, 1
mov dword [esi + 0x10], edx
mov edi, dword [esi + 0xc]
mov ebx, dword [esi + 0x10]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov ebx, eax
mov ecx, dword [esi + 0x28]
mov edi, dword [esi + 0xc]
xor eax, 0xfffffffe
or ebx, 1
and ebx, eax
je 0x421b30
and ecx, 2
movzx eax, byte [edx + ecx]
mov byte [edi + ecx], al
cmp ebx, 1
je 0x421b30
movzx eax, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], al
cmp ebx, 2
je 0x421b30
movzx eax, byte [edx + ecx + 2]
mov byte [edi + ecx + 2], al
jmp 0x421b30
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x38]
sub ecx, dword [esi + 0x34]
cmp ecx, 0xfffffff8
mov ecx, dword [esi + 0x28]
ja 0x421b30
neg ecx
xor edx, edx
movzx ebx, byte [eax + edx]
mov byte [edi + edx], bl
movzx ebx, byte [eax + edx - 1]
mov byte [edi + edx - 1], bl
movzx ebx, byte [eax + edx - 2]
mov byte [edi + edx - 2], bl
movzx ebx, byte [eax + edx - 3]
mov byte [edi + edx - 3], bl
movzx ebx, byte [eax + edx - 4]
mov byte [edi + edx - 4], bl
movzx ebx, byte [eax + edx - 5]
mov byte [edi + edx - 5], bl
movzx ebx, byte [eax + edx - 6]
mov byte [edi + edx - 6], bl
movzx ebx, byte [eax + edx - 7]
mov byte [edi + edx - 7], bl
add edx, 0xfffffff8
cmp ecx, edx
jne 0x421ae0
nop
nop
nop
mov eax, dword [esi + 0x18]
sub dword [esi + 0x20], eax
mov ecx, dword [esi + 0x30]
lea eax, [esi + 0x1c]
push eax
call fcn.00421dc0
test al, al
je 0x421d88
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x20]
mov ebx, ecx
sub ebx, eax
cmp ecx, dword [esi + 0x24]
jne 0x421cda
mov dword [esi + 0x14], ecx
mov dword [esi + 0xc], eax
lea eax, [ebx + 1]
mov edi, ebx
shr edi, 1
add edi, ebx
cmp edi, eax
ja 0x421b75
mov edi, eax
push edi
call fcn.00408810
add esp, 4
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x421ccc
mov dword [esi + 0x2c], edi
cmp eax, ecx
mov edx, dword [esi + 0x14]
mov dword [esi + 0x18], ebx
mov dword [esi + 0x28], eax
jbe 0x421c4f
cmp edx, eax
jbe 0x421c4f
test ebx, ebx
je 0x421cb8
mov edx, dword [esi + 0x18]
lea eax, [ecx + edx]
dec eax
mov ecx, dword [esi + 0x28]
add ecx, edx
dec ecx
mov edi, edx
and edi, 7
je 0x421be3
neg edi
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edx]
mov byte [ecx + edx], bl
dec edx
cmp edi, edx
jne 0x421bd0
add eax, edx
add ecx, edx
add edx, dword [esi + 0x18]
mov edi, dword [esi + 0xc]
sub edi, dword [esi + 0x14]
cmp edi, 0xfffffff8
ja 0x421cb8
neg edx
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [eax + edi]
mov byte [ecx + edi], bl
movzx ebx, byte [eax + edi - 1]
mov byte [ecx + edi - 1], bl
movzx ebx, byte [eax + edi - 2]
mov byte [ecx + edi - 2], bl
movzx ebx, byte [eax + edi - 3]
mov byte [ecx + edi - 3], bl
movzx ebx, byte [eax + edi - 4]
mov byte [ecx + edi - 4], bl
movzx ebx, byte [eax + edi - 5]
mov byte [ecx + edi - 5], bl
movzx ebx, byte [eax + edi - 6]
mov byte [ecx + edi - 6], bl
movzx ebx, byte [eax + edi - 7]
mov byte [ecx + edi - 7], bl
add edi, 0xfffffff8
cmp edx, edi
jne 0x421c00
jmp 0x421cb8
mov edx, ecx
mov ecx, ebx
shr ecx, 2
mov edi, eax
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov edx, ebx
and edx, 0xfffffffc
add eax, edx
mov dword [esi + 0x14], eax
add edx, dword [esi + 0xc]
mov eax, ebx
and eax, 3
mov ecx, eax
shr ecx, 1
mov ebx, edx
mov edi, dword [esi + 0x14]
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov edi, dword [esi + 0x14]
mov ecx, eax
xor ecx, 0xfffffffe
or eax, 1
and eax, ecx
je 0x421cb8
mov ecx, dword [esi + 0x18]
and ecx, 2
movzx ebx, byte [edx + ecx]
mov byte [edi + ecx], bl
cmp eax, 1
je 0x421cb8
movzx ebx, byte [edx + ecx + 1]
mov byte [edi + ecx + 1], bl
cmp eax, 2
je 0x421cb8
movzx eax, byte [edx + ecx + 2]
mov byte [edi + ecx + 2], al
push dword [esi + 0x1c]
call fcn.00408820
add esp, 4
mov ebx, dword [esi + 0x18]
mov edi, dword [esi + 0x2c]
mov eax, dword [esi + 0x28]
mov dword [esi + 0x1c], eax
lea ecx, [eax + ebx]
mov dword [esi + 0x20], ecx
add edi, eax
mov dword [esi + 0x24], edi
mov byte [eax + ebx], 0
mov eax, dword [esi + 0x1c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x20]
inc eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x20], eax
mov word [esi + 0x40], 0xcd33
mov byte [esi + 0x42], 0xc6
lea eax, [esi + 0x43]
mov byte [eax + 2], 0
mov word [eax], 0
xor edx, edx
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esi + ecx + 0x40]
mov ebx, edx
and ebx, 2
mov edi, ecx
xor edi, 0xa65914b1
add edi, ebx
xor edi, eax
lea ebx, [edi + edi]
mov eax, 2
sub eax, ebx
not eax
and eax, 2
and ebx, 2
neg ebx
add edi, ebx
add edi, 0xc042988b
mov ebx, edi
and ebx, eax
xor eax, edi
lea eax, [eax + ebx*2]
mov byte [esi + ecx + 0x40], al
inc ecx
add edx, 2
cmp ecx, 6
jne 0x421d10
xor ecx, ecx
mov edi, dword [esi + 0xc]
nop
nop
nop
movzx eax, byte [edi + ecx]
movzx edx, byte [esi + ecx + 0x40]
test al, al
je 0x421980
inc ecx
cmp al, dl
je 0x421d60
jmp 0x421980
mov ecx, dword [esi + 0x30]
push 0x3ea
call fcn.00420f30
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x421da4
cmp eax, dword [esi + 0x20]
je 0x421da4
push eax
call fcn.00408820
add esp, 4
mov eax, dword [esi + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc