Function at 0x420d20
Capabilities:
Check for peb beingdebugged flag
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ee47e
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x65bf90]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x24]
xor ebx, ebx
mov dword [esi], 2
mov dword [esp + 0x28], ebx
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x80], ebx
test byte [eax], 1
movzx ecx, word [eax + 2]
mov byte [esp + 0x16], 1
mov byte [esp + 0x14], bl
mov byte [esp + 0x15], bl
mov dword [esp + 0x30], ecx
je 0x420dd5
test byte [eax], 0x40
je 0x420da6
lea edi, [eax + 0x48]
lea ecx, [esp + 0x54]
call fcn.0041f7c0
test al, al
je 0x420d9b
mov byte [esp + 0x15], 1
jmp 0x420dd5
mov dword [esi], 1
jmp 0x421d25
cmp ecx, 0x63
jne 0x420dd5
mov ecx, 2
lea edx, [eax + 0x48]
lea esi, [esp + 0x4c]
mov word [esp + 0x4c], cx
call fcn.0041f760
test al, al
je 0x420dd5
cmp word [esp + 0x4c], 1
mov byte [esp + 0x14], 1
sete byte [esp + 0x16]
push 0x20
call fcn.004ba280
add esp, 4
cmp eax, ebx
je 0x420df7
mov dword [eax + 4], ebx
mov esi, eax
mov dword [eax], vtable.COutStreamWithCRC.0
mov dword [eax + 8], ebx
mov dword [esp + 0x18], esi
jmp 0x420dfd
mov dword [esp + 0x18], ebx
mov esi, ebx
mov dword [esp + 0x4c], esi
cmp esi, ebx
je 0x420e0d
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
mov edi, dword [ebp + 0x14]
mov byte [esp + 0x80], 1
cmp edi, ebx
je 0x420e24
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov esi, dword [esi + 8]
cmp esi, ebx
je 0x420e33
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov eax, dword [esp + 0x18]
mov cl, byte [esp + 0x16]
mov dword [eax + 8], edi
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], edx
mov byte [eax + 0x1c], cl
mov dword [eax + 0x18], 0xffffffff
mov dword [esp + 0x38], edx
mov ecx, dword [ebp + 0x10]
mov byte [esp + 0x80], 2
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 0x40], ecx
cmp byte [esp + 0x14], dl
je 0x420e99
cmp ecx, edx
ja 0x420e8f
jb 0x420e7a
cmp ebx, 0xa
jae 0x420e8f
mov byte [esp + 0x80], 0
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x421d25
add ebx, 0xfffffff6
adc ecx, 0xffffffff
mov dword [esp + 0x40], ecx
mov eax, dword [ebp + 0x10]
mov esi, dword [eax + 0x60]
mov ecx, dword [esp + 0x40]
xor edi, edi
add esi, dword [eax + 0x40]
push ecx
adc edi, dword [eax + 0x44]
mov ecx, dword [ebp + 0xc]
push ebx
push edi
push esi
call fcn.00425e10
add esi, ebx
adc edi, dword [esp + 0x40]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], edi
mov dword [esp + 0x20], 0
mov edx, dword [ebp + 0x10]
mov byte [esp + 0x80], 3
test byte [edx], 1
je 0x42132f
cmp byte [esp + 0x14], 0
je 0x420fc2
xor eax, eax
add edx, 0x48
lea esi, [esp + 0x3c]
mov byte [esp + 0x3e], 3
mov word [esp + 0x40], ax
call fcn.0041f760
test al, al
je 0x420f94
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x14], 0
movzx eax, word [esp + 0x40]
lea edi, [ebx + 0x14]
mov dword [esp + 0x30], eax
jne 0x420f4d
push 0x230
call fcn.004ba280
add esp, 4
test eax, eax
je 0x420f41
call fcn.00421d40
jmp 0x420f43
xor eax, eax
mov esi, eax
mov dword [ebx + 8], eax
call fcn.004227d0
mov edi, dword [edi]
test edi, edi
je 0x420f5b
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
movzx eax, byte [esp + 0x3e]
mov ecx, dword [ebx + 8]
lea edx, [eax - 1]
mov dword [esp + 0x20], edi
cmp edx, 2
ja 0x420f77
mov dword [ecx + 0xc], eax
jmp 0x42105f
mov eax, dword [ebp + 0x24]
mov dword [eax], 1
mov byte [esp + 0x80], 2
test edi, edi
je 0x420f94
mov ecx, dword [edi]
push edi
mov edx, dword [ecx + 8]
call edx
mov eax, dword [esp + 0x1c]
test eax, eax
mov byte [esp + 0x80], 1
je 0x420fac
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
jmp 0x421d22
cmp byte [esp + 0x15], 0
mov esi, dword [ebp + 8]
je 0x421009
cmp dword [esi + 0x10], 0
lea edi, [esi + 0x10]
jne 0x420ff9
push 0x198
call fcn.004ba280
add esp, 4
test eax, eax
je 0x420fed
call fcn.00421d80
jmp 0x420fef
xor eax, eax
mov dword [esi + 4], eax
mov esi, eax
call fcn.004227d0
mov esi, dword [edi]
test esi, esi
je 0x421056
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
jmp 0x421056
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jne 0x421048
push 0x30
call fcn.004ba280
add esp, 4
test eax, eax
je 0x42103d
mov dword [eax + 4], vtable.ICryptoSetPassword.0
mov dword [eax + 8], 0
mov dword [eax], vtable.NCrypto::NZip::CDecoder.0
mov dword [eax + 4], vtable.NCrypto::NZip::CDecoder.1.0
jmp 0x42103f
xor eax, eax
mov dword [esi], eax
mov esi, eax
call fcn.004227d0
mov esi, dword [edi]
test esi, esi
je 0x421056
mov edx, dword [esi]
mov eax, dword [edx + 4]
push esi
call eax
mov ebx, dword [ebp + 8]
mov dword [esp + 0x20], esi
mov edi, esi
mov dword [esp + 0x24], 0
lea edx, [esp + 0x24]
push edx
mov byte [esp + 0x84], 4
mov ecx, dword [edi]
mov eax, dword [ecx]
push 0x62b0d0
push edi
call eax
mov esi, eax
test esi, esi
je 0x4210f1
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42109e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 2
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
test eax, eax
je 0x4210c6
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp dword [ebx + 0x20], 0
lea esi, [ebx + 0x20]
jne 0x42110a
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx]
push esi
push 0x62b0e0
push eax
call edx
mov eax, dword [esi]
test eax, eax
je 0x4212fd
mov dword [esp + 0x2c], 0
lea edx, [esp + 0x2c]
mov byte [esp + 0x80], 5
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
test esi, esi
je 0x42118b
mov ecx, dword [esp + 0x2c]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42115a
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x80], 2
mov ecx, dword [edi]
push edi
mov edx, dword [ecx + 8]
call edx
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
test eax, eax
je 0x4210c6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x4210c6
lea esi, [esp + 0x3c]
call fcn.00417b40
mov byte [esp + 0x80], 6
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x421264
cmp byte [esp + 0x14], 0
jne 0x421206
cmp byte [esp + 0x15], 0
jne 0x421206
mov ebx, eax
lea edi, [esp + 0x5c]
call fcn.00417fb0
push 1
mov eax, edi
push eax
lea ecx, [esp + 0x70]
push ecx
mov byte [esp + 0x8c], 9
call fcn.00419b00
add esp, 0xc
mov ebx, eax
mov byte [esp + 0x80], 0xa
call fcn.00417bd0
mov edx, dword [esp + 0x68]
push edx
call fcn.004ba2af
mov byte [esp + 0x84], 6
mov eax, dword [esp + 0x60]
add esp, 4
push eax
jmp 0x421258
mov ebx, eax
lea edi, [esp + 0x5c]
call fcn.00417fb0
push 0
mov ecx, edi
push ecx
lea edx, [esp + 0x70]
push edx
mov byte [esp + 0x8c], 7
call fcn.00419b00
add esp, 0xc
mov ebx, eax
lea esi, [esp + 0x3c]
mov byte [esp + 0x80], 8
call fcn.00417bd0
mov eax, dword [esp + 0x68]
push eax
call fcn.004ba2af
mov byte [esp + 0x84], 6
mov ecx, dword [esp + 0x60]
add esp, 4
push ecx
call fcn.004ba2af
mov edi, dword [esp + 0x24]
add esp, 4
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x3c]
mov edx, dword [eax]
mov edx, dword [edx + 0xc]
push ecx
push esi
push eax
call edx
push esi
test eax, eax
je 0x4212e8
call fcn.004ba2af
mov eax, dword [esp + 0x30]
add esp, 4
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4212aa
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 2
mov eax, dword [edi]
mov ecx, dword [eax + 8]
push edi
call ecx
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
test eax, eax
je 0x4212d2
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
jmp 0x421d22
call fcn.004ba2af
mov eax, dword [esp + 0x30]
add esp, 4
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x421317
mov eax, dword [esp + 0x24]
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
push 0
push 0
push eax
call edx
mov esi, eax
test esi, esi
jne 0x421086
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x24]
test eax, eax
je 0x42132f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov ebx, dword [ebp + 8]
mov esi, dword [ebx + 0x28]
mov eax, dword [esp + 0x30]
xor edi, edi
test esi, esi
je 0x421350
mov ecx, dword [ebx + 0x24]
mov edx, dword [ecx]
cmp dword [edx], eax
je 0x421350
inc edi
add ecx, 4
cmp edi, esi
jb 0x421342
cmp edi, esi
jne 0x4216a8
xor esi, esi
mov dword [esp + 0x34], esi
mov bl, 0xb
mov byte [esp + 0x80], bl
mov dword [esp + 0x30], eax
cmp eax, esi
jne 0x4213d3
push 0x28
call fcn.004ba280
add esp, 4
cmp eax, esi
je 0x421405
mov dword [eax + 4], vtable.ICompressSetInStream.0
mov dword [eax + 8], vtable.ISequentialInStream.0
mov dword [eax + 0xc], vtable.ICompressGetInStreamProcessedSize.0
mov dword [eax + 0x10], esi
mov dword [eax], vtable.NCompress::CCopyCoder.0
mov dword [eax + 4], vtable.NCompress::CCopyCoder.1.0
mov dword [eax + 8], vtable.NCompress::CCopyCoder.2.0
mov dword [eax + 0xc], vtable.NCompress::CCopyCoder.3.0
mov dword [eax + 0x14], esi
mov dword [eax + 0x18], esi
mov dword [eax + 0x20], esi
mov dword [eax + 0x24], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
mov ebx, eax
call edx
mov dword [esp + 0x34], ebx
jmp 0x4214de
cmp eax, 1
jne 0x421410
push 0xc008
call fcn.004ba280
add esp, 4
cmp eax, esi
je 0x421405
mov dword [eax + 4], esi
mov dword [eax], vtable.NCompress::NShrink::CDecoder.0
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
mov ebx, eax
call edx
mov dword [esp + 0x34], ebx
jmp 0x4214de
xor ebx, ebx
mov dword [esp + 0x34], ebx
jmp 0x4214de
cmp eax, 6
jne 0x42145c
push 0x248
call fcn.004ba280
add esp, 4
mov dword [esp + 0x3c], eax
mov byte [esp + 0x80], 0xc
cmp eax, esi
je 0x42143c
push eax
call fcn.00440fb0
mov edi, eax
jmp 0x42143e
xor edi, edi
mov byte [esp + 0x80], bl
cmp edi, esi
je 0x421451
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov ebx, edi
mov dword [esp + 0x34], ebx
jmp 0x4214de
cmp eax, 0xe
jne 0x4214a2
push 0x10
call fcn.004ba280
add esp, 4
mov dword [esp + 0x3c], eax
mov byte [esp + 0x80], 0xd
cmp eax, esi
je 0x421485
push eax
call fcn.00420b00
mov edi, eax
jmp 0x421487
xor edi, edi
mov byte [esp + 0x80], bl
cmp edi, esi
je 0x42149a
mov edx, dword [edi]
mov eax, dword [edx + 4]
push edi
call eax
mov ebx, edi
mov dword [esp + 0x34], ebx
jmp 0x4214de
cmp eax, 0x5f
jne 0x42151a
push 0x6f0
call fcn.004ba280
mov edi, eax
add esp, 4
cmp edi, esi
je 0x421516
mov dword [edi + 4], 0
lea eax, [edi + 8]
mov dword [edi], vtable.NArchive::NZip::CXzDecoder.0
call fcn.0041f6c0
mov esi, edi
lea edi, [esp + 0x34]
call fcn.004227d0
mov ebx, dword [esp + 0x34]
mov esi, dword [ebp + 8]
push 8
add esi, 0x24
call fcn.004ba280
mov edi, eax
add esp, 4
test edi, edi
je 0x421679
mov eax, dword [esp + 0x30]
mov dword [edi], eax
mov dword [edi + 4], ebx
test ebx, ebx
je 0x42167b
mov ecx, dword [ebx]
mov edx, dword [ecx + 4]
push ebx
call edx
jmp 0x42167b
xor esi, esi
jmp 0x4214d1
cmp eax, 0x62
jne 0x42156d
push 0x1cf0
call fcn.004ba280
mov edi, eax
add esp, 4
cmp edi, esi
je 0x421566
xor ecx, ecx
mov dword [edi + 4], ecx
lea eax, [edi + 8]
mov dword [edi], vtable.NCompress::NPpmdZip::CDecoder.0
mov dword [eax + 0xc], ecx
mov dword [eax], 0x432e20
mov dword [edi + 0x30], ecx
lea esi, [edi + 0x34]
mov byte [edi + 0x1cec], 1
mov dword [edi + 0x88], eax
call fcn.00460fb0
jmp 0x4214cf
xor edi, edi
jmp 0x4214cf
cmp eax, 0xc
jne 0x42157b
mov eax, 0x40202
xor edx, edx
jmp 0x4215b9
cmp eax, 0xff
jbe 0x4215ae
mov ecx, dword [ebp + 0x24]
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
mov dword [ecx], 1
cmp eax, esi
je 0x4215a3
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x1c]
cmp eax, esi
jmp 0x420f9a
movzx eax, al
cdq
add eax, 0x40100
adc edx, esi
push esi
push edx
push eax
lea edi, [esp + 0x40]
call fcn.00427d20
mov edi, eax
add esp, 0xc
cmp edi, esi
je 0x421641
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x4215e6
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x4215fe
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
cmp eax, esi
je 0x421616
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, edi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ebx, dword [esp + 0x34]
cmp ebx, esi
jne 0x4214de
mov eax, dword [ebp + 0x24]
mov dword [eax], 1
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
cmp eax, esi
je 0x42166e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x1c]
cmp eax, esi
jmp 0x420f9a
xor edi, edi
call fcn.0041bab0
mov eax, dword [esi + 4]
mov ecx, dword [esi]
mov dword [ecx + eax*4], edi
mov edi, dword [esi + 4]
lea edx, [edi + 1]
mov dword [esi + 4], edx
mov byte [esp + 0x80], 3
test ebx, ebx
je 0x4216a5
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
push ebx
call ecx
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x24]
mov edi, dword [edx + edi*4]
mov edi, dword [edi + 4]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x84], 0xe
mov eax, dword [edi]
mov edx, dword [eax]
push 0x62aff0
push edi
call edx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x421734
mov ecx, dword [ebp + 0x10]
mov dl, byte [ecx]
mov byte [esp + 0x17], dl
mov ecx, dword [eax]
push 1
lea edx, [esp + 0x1b]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
test esi, esi
je 0x421730
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x421714
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x42116a
mov ecx, dword [eax]
push eax
jmp 0x421165
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x80], 3
test eax, eax
je 0x421748
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x2c], 0
lea ecx, [esp + 0x2c]
push ecx
mov byte [esp + 0x84], 0xf
mov eax, dword [edi]
mov edx, dword [eax]
push 0x62b020
push edi
call edx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x42178b
mov edx, dword [ebp + 0x20]
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov esi, eax
test esi, esi
jne 0x4216fc
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x80], 3
test eax, eax
je 0x42179f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x24], 0
mov eax, dword [ebp + 0x10]
mov byte [esp + 0x80], 0x10
test byte [eax], 1
je 0x421af8
cmp dword [ebx + 0x1c], 0
jne 0x421809
push 0x98
call fcn.004ba280
add esp, 4
test eax, eax
je 0x4217db
push 0
call fcn.004424a0
jmp 0x4217dd
xor eax, eax
mov dword [ebx + 0x18], eax
test eax, eax
je 0x4217e9
lea edi, [eax + 0x10]
jmp 0x4217eb
xor edi, edi
test edi, edi
je 0x4217f7
mov ecx, dword [edi]
mov edx, dword [ecx + 4]
push edi
call edx
mov eax, dword [ebx + 0x1c]
test eax, eax
je 0x421806
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [ebx + 0x1c], edi
mov esi, dword [esp + 0x20]
mov edi, dword [ebx + 0x18]
test esi, esi
je 0x42181c
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
call ecx
mov eax, dword [edi + 0x94]
test eax, eax
je 0x42182e
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
cmp byte [esp + 0x14], 0
mov dword [edi + 0x94], esi
je 0x421920
mov ecx, dword [esp + 0x1c]
push ecx
mov ecx, dword [ebx + 8]
call fcn.004434e0
mov edi, eax
test edi, edi
jne 0x421b35
mov edx, dword [ebp + 8]
mov esi, dword [edx + 8]
call fcn.004432a0
mov ecx, 0xffffffe0
lea eax, [esi + 0x20]
sub ecx, esi
jmp 0x421870
mov dl, byte [eax]
cmp dl, byte [eax + 0x208]
jne 0x421a21
inc eax
lea edx, [ecx + eax]
cmp edx, 2
jb 0x421870
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x18]
mov edi, dword [esp + 0x1c]
lea esi, [eax + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
push edi
push esi
call ecx
mov dword [esp + 0x30], eax
test eax, eax
je 0x421a46
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4218c5
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x80], 1
test edi, edi
je 0x4218d9
mov ecx, dword [edi]
mov edx, dword [ecx + 8]
push edi
call edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x80], 0xffffffff
cmp dword [esp + 0x28], 0
je 0x421907
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
push esi
call ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
cmp byte [esp + 0x15], 0
je 0x42199b
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0x1c]
mov ebx, dword [ebx + 4]
push ecx
mov ecx, dword [esp + 0x20]
push edx
push eax
push ecx
call fcn.00443990
mov edi, eax
test edi, edi
jne 0x421b31
mov eax, dword [ebp + 8]
mov esi, dword [eax + 4]
lea edx, [esp + 0x17]
push edx
call fcn.00443ad0
mov edi, eax
test edi, edi
jne 0x421b31
cmp byte [esp + 0x17], al
jne 0x421887
mov ecx, dword [ebp + 0x24]
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
mov dword [ecx], 9
test eax, eax
je 0x420f94
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x420f94
mov eax, dword [ebx]
mov ecx, dword [esp + 0x1c]
add eax, 0x24
push ecx
lea edi, [esp + 0x34]
mov dword [esp + 0x34], 0xc
call fcn.00440dc0
add esp, 4
test eax, eax
je 0x4219c1
mov edi, eax
jmp 0x4219d2
mov edi, dword [esp + 0x30]
sub edi, 0xc
neg edi
sbb edi, edi
and edi, 0x80004005
test edi, edi
jne 0x421b35
mov eax, dword [ebx]
mov edx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0xc], edx
mov edx, dword [eax + 0x20]
mov dword [eax + 0x14], edx
push 0xc
lea edx, [eax + 0x24]
mov dword [eax + 0x10], ecx
mov ecx, dword [eax]
push edx
push eax
mov eax, dword [ecx + 0x10]
call eax
mov eax, dword [ebp + 0x10]
mov dl, byte [eax]
mov ecx, dword [ebx]
mov cl, byte [ecx + 0x2f]
shr dl, 3
test dl, 1
je 0x421a16
mov eax, dword [eax + 0x18]
shr eax, 8
jmp 0x421a19
mov al, byte [eax + 0x1f]
cmp cl, al
je 0x421887
mov eax, dword [ebp + 0x24]
mov dword [eax], 9
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x420f94
mov ecx, dword [eax]
push eax
jmp 0x420f8f
mov edi, dword [ebx + 0x18]
xor eax, eax
mov dword [edi + 0x70], eax
mov dword [edi + 0x74], eax
mov dword [edi + 0x78], eax
mov byte [edi + 0x51], al
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x60], eax
mov dword [edi + 0x64], eax
call fcn.00442430
mov edi, eax
test edi, edi
je 0x421ae3
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x421a86
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
test eax, eax
je 0x421a9e
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x80], 0xffffffff
cmp dword [esp + 0x28], 0
je 0x421acc
mov eax, dword [esi]
mov ecx, dword [eax + 0x10]
push esi
call ecx
mov eax, edi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
je 0x421af2
mov edx, dword [ebx]
mov eax, dword [edx + 4]
push ebx
call eax
mov dword [esp + 0x24], ebx
jmp 0x421b0c
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x421b08
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
push esi
call edx
mov dword [esp + 0x24], esi
mov edx, dword [ebp + 0x1c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
push edx
mov edx, dword [ebp + 0x10]
add edx, 8
push edx
mov edx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x34]
push edx
push eax
mov eax, dword [ecx + 0xc]
call eax
mov edi, eax
mov esi, dword [esp + 0x20]
mov byte [esp + 0x80], 3
cmp edi, 1
jne 0x421b87
mov eax, dword [esp + 0x24]
test eax, eax
je 0x421b52
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 2
test esi, esi
je 0x421b66
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
test eax, eax
je 0x421cf2
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
jmp 0x421cf2
cmp edi, 0x80004001
jne 0x421b9a
mov eax, dword [ebp + 0x24]
mov dword [eax], 1
jmp 0x421b42
mov eax, dword [esp + 0x24]
test edi, edi
je 0x421c28
test eax, eax
je 0x421bb2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0x80], 2
test esi, esi
je 0x421bc6
mov eax, dword [esi]
mov ecx, dword [eax + 8]
push esi
call ecx
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x80], 1
test eax, eax
je 0x421bde
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x28]
test eax, eax
je 0x421c11
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x10]
add eax, 0xc
push eax
call edx
mov eax, edi
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
test eax, eax
je 0x421c34
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
cmp byte [esp + 0x16], 0
mov al, 1
mov byte [esp + 0x17], 1
mov byte [esp + 0x15], al
je 0x421c5a
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ebp + 0x10]
not edx
cmp edx, dword [ecx + 0x1c]
sete byte [esp + 0x17]
cmp byte [esp + 0x14], 0
je 0x421ca9
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov ecx, dword [ebp + 0xc]
push 0
push 0xa
push edx
push eax
call fcn.00425e10
mov esi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x421c89
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 8]
push esi
lea ebx, [esp + 0x19]
mov dword [esp + 0x3c], esi
call fcn.00443570
test eax, eax
je 0x421ca5
xor al, al
jmp 0x421ca9
mov al, byte [esp + 0x15]
cmp byte [esp + 0x17], 0
je 0x421cb8
test al, al
je 0x421cb8
xor eax, eax
jmp 0x421cbd
mov eax, 3
mov ecx, dword [ebp + 0x24]
mov dword [ecx], eax
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x20]
test eax, eax
je 0x421cda
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0x80], 1
mov eax, dword [esp + 0x38]
test eax, eax
je 0x421cf2
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x28]
test eax, eax
je 0x421d25
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0x10]
add eax, 0xc
push eax
call edx
xor eax, eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20