Function at 0x420b30
Capabilities:
Encode data using base64
Parse credit card information
Parse pe header

Disassembly:
push ebp
push edi
mov ebp, eax
push esi
push ebx
sub eax, 0xffffff80
mov ebx, 0xffffffff
sub esp, 0xac
mov dword [esp + 0x1c], eax
lea eax, [ebp + 0x18c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x38], eax
nop
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], edi
jb 0x420d01
cmp ebx, 0xffffffff
jne 0x420d01
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004c95b0
test eax, eax
je 0x421393
mov edi, dword [ebp + 0x20f0]
test edi, edi
jne 0x421393
mov esi, dword [esp + 0x14]
cmp dword [esp + 0x18], esi
je 0x421340
mov edi, dword [esp + 0x14]
mov eax, edi
add edi, 1
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x20]
cmp dword [ebp + 0x1100], 2
movzx eax, byte [esi + eax]
mov dword [esp + 0x4c], eax
je 0x421300
cmp byte [ebp + 0xe4], 0
jne 0x420d1b
mov ecx, dword [ebp + 0xe24]
mov eax, dword [esp + 0x4c]
test ecx, ecx
mov esi, ecx
je 0x421210
mov edx, eax
and edx, 0xffffffe0
add edx, 0xffffff80
je 0x421270
cmp eax, 0x7f
mov ebx, 0xffffffff
jne 0x420d96
cmp ecx, 4
ja 0x4212d1
mov edx, dword [ebp]
and dh, 0x40
je 0x4212d1
mov eax, dword [ebp + 0x98]
test eax, eax
je 0x420c46
cmp byte [ebp + 0xae], 0
je 0x421551
cmp byte [ebp + 0x1109], 0
mov byte [ebp + 0xae], 0
jne 0x420ca2
mov ebx, dword [ebp + 0x98]
mov edx, dword [ebp + 0x94]
test ebx, ebx
jle 0x420c72
cmp ebx, dword [ebp + 0x12c]
jle 0x421c70
lea eax, [ebx + 1]
test eax, eax
jle 0x420c85
cmp eax, dword [ebp + 0x12c]
jle 0x421c54
mov ecx, 0xfab
mov dword [esp], 1
mov eax, ebp
call fcn.00416fc0
lea ecx, [ebp + 0x6c]
mov edx, ebx
call fcn.004168c0
mov eax, ebp
mov ebx, 0xffffffff
call fcn.0041c180
nop
mov eax, dword [ebp + 0xe28]
test eax, eax
je 0x420b70
mov eax, dword [ebp + 0x98]
cmp eax, dword [ebp + 0x12c]
mov edx, dword [ebp + 0x94]
lea ecx, [eax + 1]
je 0x421330
mov dword [esp], edx
mov dword [esp + 4], ecx
mov eax, ebp
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0x98]
call fcn.004187a0
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x18], edi
jae 0x420b7e
cmp ebx, 0xffffffff
je 0x420b9b
cmp byte [ebp + 0xe4], 0
mov dword [esp + 0x4c], ebx
je 0x420bea
lea eax, [esp + 0x4c]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
lea eax, [ebp + 0xec]
mov dword [esp], eax
call fcn.004c95e0
cmp byte [ebp + 0xe5], 0
je 0x420bea
mov eax, dword [esp + 0x4c]
cmp eax, 0x1b
je 0x4213e0
cmp eax, 0x9b
je 0x421480
cmp eax, 0x5b
je 0x421473
cmp eax, 0x34
je 0x4217c1
cmp eax, 0x69
jne 0x420d82
cmp dword [ebp + 0xe8], 3
je 0x421874
mov dword [ebp + 0xe8], 0
jmp 0x4213ea
mov ebx, 0xffffffff
mov edx, eax
and edx, 0xffffffe0
test edx, edx
jne 0x420e35
cmp esi, 4
ja 0x420e35
sub eax, 5
cmp eax, 0x16
ja case.0x423576.3
jmp dword [eax*4 + 0x4e4f7c]
mov ecx, dword [ebp + 0x94]
cmp ecx, dword [ebp + 0xa8]
je 0x421e2f
mov eax, dword [ebp + 0x128]
sub eax, 1
cmp ecx, eax
jge 0x420de8
add ecx, 1
mov dword [ebp + 0x94], ecx
cmp byte [ebp + 0x10fc], 0
je 0x420dfb
mov dword [ebp + 0x98], 0
mov eax, ebp
mov byte [ebp + 0xae], 0
call fcn.0041c180
mov eax, dword [ebp + 0x1068]
test eax, eax
je case.0x423576.3
movzx edx, byte [esp + 0x4c]
mov dword [esp + 8], 1
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00435c30
jmp case.0x423576.3
cmp esi, 0xe
ja case.0x423576.3
jmp dword [esi*4 + 0x4e4fd8]
mov ebx, 0xffffffff
lea ecx, [eax - 0x20]
mov edx, dword [ebp + 0x210]
cmp ecx, 0xf
ja 0x4213ff
test edx, edx
mov edx, 0xffffffff
cmovne eax, edx
mov dword [ebp + 0x210], eax
jmp case.0x423576.3
mov ebx, 0xffffffff
mov edx, eax
mov eax, ebp
call fcn.0041d0f0
mov eax, dword [esp + 0x4c]
mov dword [ebp + 0x1070], eax
jmp case.0x423576.3
mov ebx, 0xffffffff
mov edx, dword [ebp + 0x40]
shl eax, 9
mov dword [ebp + 0xe24], 0
and eax, 0x1e00
and edx, 0xffdc01ff
or eax, edx
cmp byte [ebp + 0xc6], 0
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x7c], eax
je case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
mov ebx, 0xffffffff
mov edx, dword [ebp + 0x40]
and eax, 0xf
mov dword [ebp + 0xe24], 0
and edx, 0xfffbfe00
or eax, edx
cmp byte [ebp + 0xc6], 0
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x58]
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x7c], eax
je case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
mov ebx, 0xffffffff
mov ecx, dword [ebp + 0x94]
lea edx, [eax - 0x20]
mov dword [ebp + 0xe24], 0
mov eax, ebp
mov dword [esp], 0
call fcn.0041c580
jmp case.0x423576.3
mov ebx, 0xffffffff
mov edx, dword [ebp + 0x98]
lea ecx, [eax - 0x20]
mov dword [ebp + 0xe24], 0xc
mov eax, ebp
mov dword [esp], 0
call fcn.0041c580
jmp case.0x423576.3
mov ebx, 0xffffffff
sub eax, 0x3c
mov dword [ebp + 0xe24], 0
cmp eax, 0x3b
ja case.0x423576.3
jmp dword [eax*4 + 0x4e5014]
cmp eax, 0x9c
je 0x421bb9
mov edx, dword [ebp + 0x218]
cmp edx, 0x7ff
jg 0x421014
lea ecx, [edx + 1]
cmp ecx, 0x800
mov dword [ebp + 0x218], ecx
mov byte [ebp + edx + 0x21c], 0xc2
je 0x421014
add edx, 2
mov dword [ebp + 0x218], edx
mov byte [ebp + ecx + 0x21c], al
mov dword [ebp + 0xe24], 7
jmp case.0x423576.3
cmp eax, 0x5c
jne case.0x420e3e.1
mov eax, ebp
call fcn.0041ba60
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov ebx, 0xffffffff
cmp eax, 0xa
je 0x421890
cmp eax, 0xd
je 0x421890
cmp eax, 0x1b
je 0x421c9a
cmp eax, 7
je 0x421d76
cmp eax, 0x9c
je 0x421d49
cmp eax, 0xc2
je 0x4220c3
mov edx, dword [ebp + 0x218]
cmp edx, 0x7ff
jg case.0x423576.3
lea ecx, [edx + 1]
mov dword [ebp + 0x218], ecx
mov byte [ebp + edx + 0x21c], al
jmp case.0x423576.3
mov ebx, 0xffffffff
mov esi, dword [ebp + 0x218]
lea ecx, [eax - 0x30]
cmp esi, 1
sbb edx, edx
and edx, 6
add edx, 0xf
cmp ecx, 9
jbe 0x421492
cmp eax, 0x40
jle 0x4210f5
lea ecx, [edx + 0x37]
cmp eax, ecx
jle 0x42148f
cmp eax, 0x60
jle 0x4210f5
add edx, 0x57
lea ecx, [eax - 0x57]
cmp eax, edx
jle 0x421492
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
cmp eax, 0x9c
je 0x421a50
jbe 0x4217e5
cmp eax, 0xc2
jne 0x421a30
cmp byte [ebp + 0xd5], 0
je 0x421d31
mov dword [ebp + 0xe24], 9
jmp case.0x423576.3
mov ebx, 0xffffffff
cmp eax, 0x52
mov byte [ebp + 0xa1d], 0
je 0x421fa1
jbe 0x421840
cmp eax, 0x9c
je 0x421f60
cmp eax, 0xc2
je 0x421f76
cmp eax, 0x57
je 0x421d8c
cmp eax, 0x4c
je 0x4221f1
cmp eax, 0x3b
je 0x422a41
mov dword [ebp + 0xe24], 7
mov dword [ebp + 0x218], 0
jmp case.0x423576.3
mov ebx, 0xffffffff
lea edx, [eax - 0x30]
mov dword [ebp + 0xe24], 0
cmp edx, 9
ja 0x4218a0
mov edx, dword [ebp + 0x20c]
cmp edx, 0x20
jg 0x4211ff
lea edx, [ebp + edx*4]
mov ecx, dword [edx + 0x188]
cmp ecx, 0x19999999
ja 0x421d18
lea ecx, [ecx + ecx*4]
mov esi, 0xffffffcf
sub esi, eax
add ecx, ecx
cmp ecx, esi
ja 0x421d18
lea eax, [eax + ecx - 0x30]
mov dword [edx + 0x188], eax
mov dword [ebp + 0xe24], 2
jmp case.0x423576.3
movzx eax, al
mov dword [esp], ebp
mov ebx, 0xffffffff
mov dword [esp + 8], eax
lea eax, [ebp + 0xd8]
mov dword [esp + 4], eax
call fcn.0041dd60
cmp eax, 0x8000002a
je 0x4212e5
cmp eax, 0x8000003f
je 0x420b70
cmp eax, 0x80000021
je 0x4212e1
mov ecx, dword [ebp + 0xe24]
mov edx, eax
mov dword [esp + 0x4c], eax
and edx, 0xffffffe0
add edx, 0xffffff80
mov esi, ecx
jne 0x420c0c
lea esi, [esi]
cmp ecx, 4
ja 0x420d91
cmp byte [ebp + 0x13e], 0
jne 0x4212c0
test byte [ebp], 0x10
je 0x4212c0
cmp eax, 0x9a
je 0x4219f3
and eax, 0x1f
mov ecx, 1
mov dword [ebp + 0xe24], 1
add eax, 0x40
mov dword [ebp + 0x210], 0
mov dword [esp + 0x4c], eax
lea esi, [esi]
lea edi, [edi]
mov edx, eax
mov esi, ecx
mov ebx, 0xffffffff
and edx, 0xffffffe0
jmp 0x420d9b
cmp ecx, 0xe
ja case.0x4212da.5
jmp dword [ecx*4 + 0x4e5104]
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x4c], 0xd961
mov esi, dword [ebp + 0xe24]
mov eax, 0xd961
jmp 0x420d96
mov edx, dword [ebp + 0x1068]
test edx, edx
je 0x420bdd
mov dword [esp + 8], 2
mov dword [esp + 4], eax
mov dword [esp], edx
call fcn.00435c30
jmp 0x420bdd
add edx, 1
xor ecx, ecx
jmp 0x420cd9
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.004c96c0
mov dword [esp], ebx
call fcn.004c95b0
test eax, eax
mov dword [esp + 0x14], eax
je 0x421393
mov dword [esp], ebx
call fcn.004c9790
test eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], edx
je 0x421a05
test edx, edx
je 0x421530
mov dword [esp + 0x14], 1
xor eax, eax
jmp 0x420bc4
mov eax, dword [esp + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004c96c0
cmp byte [esp + 0x24], 0
je 0x4219d0
mov eax, ebp
call fcn.004173e0
cmp byte [ebp + 0x10fd], 0
je 0x4213d4
mov eax, dword [ebp + 0x1068]
test eax, eax
je 0x4213d4
mov dword [esp], eax
call fcn.00435360
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp + 0xe8], 1
mov ebx, 0xffffffff
jmp 0x420b70
mov edx, dword [ebp + 0x210]
mov ebx, 0xffffffff
shl edx, 8
mov dword [ebp + 0xe24], 0
add eax, edx
cmp eax, 0x2336
ja 0x421960
cmp eax, 0x2333
jae 0x4229b9
cmp eax, 0x48
je 0x422b0f
ja 0x421a66
cmp eax, 0x3d
je 0x4224b4
jbe 0x4220df
cmp eax, 0x44
je 0x422b6e
cmp eax, 0x45
je 0x42244a
cmp eax, 0x3e
jne case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov byte [ebp + 0x13d], 0
jmp case.0x423576.3
cmp dword [ebp + 0xe8], 1
jne 0x420d82
mov dword [ebp + 0xe8], 2
jmp 0x4213ea
lea ecx, [eax - 0x37]
lea eax, [esi + 1]
cmp eax, 6
mov dword [ebp + 0x218], eax
mov byte [ebp + esi + 0x21c], cl
jle case.0x423576.3
movsx esi, byte [ebp + 0x21c]
cmp esi, 0x15
ja 0x421fc1
movzx edx, byte [ebp + 0x21d]
mov ecx, dword [esi*4 + 0x4e5aa0]
lea eax, [ecx + ecx*2]
shl edx, 4
add dl, byte [ebp + 0x21e]
add eax, ebp
mov byte [eax + 0x1990], dl
movzx edx, byte [ebp + 0x21f]
shl edx, 4
add dl, byte [ebp + 0x220]
mov byte [eax + 0x1991], dl
movzx edx, byte [ebp + 0x221]
shl edx, 4
add dl, byte [ebp + 0x222]
mov byte [eax + 0x1992], dl
mov byte [ebp + ecx + 0x1ca2], 1
mov eax, ebp
call fcn.0041e180
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov dword [esp + 8], 0xf50
mov dword [esp + 4], str._MoTTY_terminal_terminal.c
mov dword [esp], str.nchars_used___nchars_got
call fcn.004d8b40
jmp 0x421384
sub eax, 1
mov dword [ebp + 0x98], eax
jmp 0x420c46
cmp byte [ebp + 0x13e], 0
je 0x421ad0
mov dword [ebp + 0xe24], 0xa
jmp case.0x423576.3
test byte [ebp], 2
jne 0x421af5
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov dword [ebp + 0x98], 0
mov byte [ebp + 0xae], 0
mov eax, ebp
call fcn.0041c180
cmp byte [ebp + 0x10f0], 0
je 0x4215e9
mov ecx, dword [ebp + 0x94]
cmp ecx, dword [ebp + 0xa8]
je 0x42220d
mov eax, dword [ebp + 0x128]
sub eax, 1
cmp ecx, eax
jge 0x4215e9
add ecx, 1
mov dword [ebp + 0x94], ecx
mov eax, dword [ebp + 0x1068]
test eax, eax
je case.0x423576.3
movzx edx, byte [esp + 0x4c]
mov dword [esp + 8], 1
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00435c30
jmp case.0x423576.3
test byte [ebp], 2
jne 0x421b52
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
cmp byte [ebp + 0xae], 0
je 0x421b17
mov byte [ebp + 0xae], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov edx, dword [ebp]
and edx, 2
jne case.0x420db8.10
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
test byte [ebp], 1
jne 0x421b61
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
sub esi, 3
cmp esi, 1
ja 0x421bcf
mov eax, ebp
call fcn.0041ba60
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov edx, dword [ebp]
test dh, 0x10
je 0x421653
xor ecx, ecx
xor edx, edx
mov eax, ebp
mov dword [esp], 0
call fcn.0041c580
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041e4e0
cmp byte [ebp + 0x1119], 0
je 0x4216fc
mov dword [ebp + 0x10], 0
mov byte [ebp + 0xae], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov edx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x94]
mov ecx, 0x106f
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x94]
mov dword [esp + 0x30], eax
mov dword [esp], 1
mov eax, ebp
call fcn.00416fc0
mov edi, dword [ebp + 0x12c]
mov esi, dword [ebp + 0x98]
mov dword [esp + 0x28], eax
lea edx, [esi + 1]
lea eax, [edi - 1]
jmp 0x421766
mov ecx, dword [ebp + 0xe20]
movzx ecx, byte [ecx + edx]
add edx, 1
test cl, cl
jne 0x421772
cmp edx, eax
mov esi, edx
mov dword [ebp + 0x98], edx
jl 0x421755
mov ecx, dword [esp + 0x28]
test byte [ecx], 3
je 0x421b04
mov eax, edi
shr eax, 0x1f
add edi, eax
sar edi, 1
cmp esi, edi
jl 0x421795
sub edi, 1
mov dword [ebp + 0x98], edi
mov edx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x94]
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x30]
mov dword [esp], eax
mov eax, ebp
call fcn.004187a0
call fcn.0041c180
jmp case.0x423576.3
cmp dword [ebp + 0xe8], 2
jne 0x420d82
mov dword [ebp + 0xe8], 3
jmp 0x4213ea
mov ebx, 0xffffffff
lea edx, [eax - 0x30]
cmp edx, 9
ja 0x421a30
mov edx, dword [ebp + 0x18c]
cmp edx, 0x19999999
ja 0x421d09
lea edx, [edx + edx*4]
mov ecx, 0xffffffcf
sub ecx, eax
add edx, edx
cmp edx, ecx
ja 0x421d09
lea eax, [eax + edx - 0x30]
mov dword [ebp + 0x18c], eax
jmp case.0x423576.3
mov ebx, 0xffffffff
jmp 0x420fdd
cmp eax, 0x30
jb 0x42117a
cmp eax, 0x39
jbe 0x421cca
cmp eax, 0x50
jne 0x42117a
mov dword [ebp + 0xe24], 6
mov dword [ebp + 0x218], 0
jmp case.0x423576.3
mov dword [ebp + 0xe8], 4
mov eax, ebp
mov ebx, 0xffffffff
call fcn.0041b9b0
jmp 0x420b70
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
cmp eax, 0x3b
je 0x421e01
cmp eax, 0x3f
mov ecx, dword [ebp + 0x210]
jbe 0x421ca9
mov edx, ecx
shl edx, 8
add eax, edx
cmp eax, 0x66
je 0x423bce
ja 0x42203b
cmp eax, 0x4c
je 0x4238e0
jbe 0x422246
cmp eax, 0x5a
je 0x42381a
ja 0x422bb3
cmp eax, 0x53
je 0x4237c1
ja 0x422eb0
cmp eax, 0x4d
jne 0x422f87
test byte [ebp], 8
je case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0xa8]
cmp edx, ecx
mov dword [ebp + 0x18c], eax
jg 0x421952
test eax, eax
jne 0x421940
mov eax, 1
mov dword [esp], eax
mov dword [esp + 4], 1
mov eax, ebp
call fcn.0041c1f0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x2841
je 0x422ae9
jbe 0x421e5d
cmp eax, 0x2930
je 0x4224ca
jbe 0x42215e
cmp eax, 0x2942
je 0x422ac3
cmp eax, 0x2955
je 0x422393
cmp eax, 0x2941
jne case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x160], 0xdb00
jmp case.0x423576.3
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.004c95b0
mov edx, dword [ebp + 0x1064]
mov ecx, dword [edx]
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ecx + 0x5c]
jmp 0x4213b2
mov dword [esp + 0x4c], 0
mov ebx, 0xffffffff
jmp case.0x423576.3
mov dword [esp + 8], 0xf4f
mov dword [esp + 4], str._MoTTY_terminal_terminal.c
mov dword [esp], str.chars___NULL
mov dword [esp + 0x14], edx
call fcn.004d8b40
mov edx, dword [esp + 0x14]
jmp 0x42137c
mov dword [ebp + 0xe24], 7
mov dword [ebp + 0x218], 0
jmp case.0x423576.3
mov eax, ebp
call fcn.0041ba60
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
cmp eax, 0x5b
je 0x4223bb
jbe 0x422109
cmp eax, 0x5f
je 0x422b2e
cmp eax, 0x63
je 0x422300
cmp eax, 0x5d
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
mov dword [ebp + 0xe24], 3
mov byte [ebp + 0x214], 0
mov dword [ebp + 0x218], 0
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x20c], 1
jmp case.0x423576.3
sub esi, 3
cmp esi, 1
jbe 0x421da2
test byte [ebp], 1
jne 0x42219c
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov dword [ebp + 0xb0], 0
jmp case.0x423576.3
cmp esi, edi
jl 0x421795
mov dword [ebp + 0x98], eax
jmp 0x421795
mov eax, dword [ebp + 0x98]
test eax, eax
jne 0x421b44
mov edx, dword [ebp + 0x94]
test edx, edx
je 0x421644
cmp byte [ebp + 0xad], 0
je 0x421644
test edx, edx
jg 0x4224f0
sub eax, 1
mov dword [ebp + 0x98], eax
jmp 0x421644
mov dword [ebp + 0xb0], 1
jmp case.0x423576.3
mov esi, dword [ebp + 0x1060]
test esi, esi
je case.0x423576.3
mov eax, dword [ebp + 0x10c4]
mov ecx, dword [ebp + 0x10c0]
xor edx, edx
mov dword [esp], eax
mov eax, ebp
call fcn.0041b900
mov dword [esp + 0xc], 0
mov esi, eax
mov eax, dword [eax + 8]
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
mov dword [esp], esi
call fcn.004cebf0
jmp case.0x423576.3
mov eax, ebp
call fcn.0041ba60
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [ebp + 0x34], 0
mov esi, eax
je 0x421db1
mov edx, dword [ebp + 0x28]
test edx, edx
jne 0x421bf4
jmp 0x421c20
sub dword [ebp + 0x30], 1
mov eax, esi
sub eax, dword [ebp + 0x10dc]
cmp dword [edx + 4], eax
jae 0x421c20
mov eax, dword [edx]
mov dword [ebp + 0x28], eax
mov dword [esp], edx
call fcn.004cd6d0
mov edx, dword [ebp + 0x28]
test edx, edx
jne 0x421bf0
sub dword [ebp + 0x30], 1
mov dword [ebp + 0x2c], 0
cmp byte [ebp + 0x10d0], 0
je 0x421ff1
cmp byte [ebp + 0x34], 0
je 0x421fe2
mov eax, esi
sub eax, dword [ebp + 0x38]
cmp eax, dword [ebp + 0x10d8]
jb 0x422975
mov byte [ebp + 0x34], 0
mov dword [ebp + 0x38], esi
jmp 0x421ff4
mov ecx, edx
mov edx, eax
mov eax, ebp
call fcn.0041ca70
mov ebx, dword [ebp + 0x98]
mov edx, dword [ebp + 0x94]
jmp 0x420c85
mov ecx, edx
mov eax, ebp
mov edx, ebx
call fcn.0041ca70
mov edx, dword [ebp + 0x94]
mov ebx, dword [ebp + 0x98]
jmp 0x420c72
mov ebx, 0xffffffff
jmp case.0x423576.3
mov dword [ebp + 0xe24], 8
jmp case.0x423576.3
test ecx, ecx
je 0x422025
mov dword [ebp + 0x210], 0xffffffff
mov dword [ebp + 0xe24], 2
jmp case.0x423576.3
mov edx, dword [ebp + 0x20c]
lea edx, [ebp + edx*4]
mov ecx, dword [edx + 0x188]
cmp ecx, 0x19999999
ja 0x421df2
lea ecx, [ecx + ecx*4]
mov esi, 0xffffffcf
sub esi, eax
add ecx, ecx
cmp ecx, esi
ja 0x421df2
lea eax, [eax + ecx - 0x30]
mov dword [edx + 0x188], eax
jmp case.0x423576.3
mov dword [ebp + 0x18c], 0xffffffff
jmp case.0x423576.3
mov dword [edx + 0x188], 0xffffffff
mov dword [ebp + 0xe24], 2
jmp case.0x423576.3
mov eax, dword [ebp + 0x106c]
cmp dword [eax + 8], 0xfde9
jne case.0x423576.3
jmp 0x42112d
cmp byte [ebp + 0xd5], 0
jne 0x421081
mov edx, dword [ebp + 0x106c]
cmp dword [edx + 8], 0xfde9
je 0x421081
cmp byte [edx + 0xaa8], 0xff
je 0x421081
mov eax, ebp
call fcn.0041ba60
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov dword [ebp + 0xe24], 4
mov byte [ebp + 0xa1d], 1
jmp case.0x423576.3
mov dword [ebp + 0xe24], 8
jmp case.0x423576.3
mov dword [esp + 8], 0
mov dword [esp + 4], 8
mov dword [esp], 1
call fcn.004cd640
mov edx, dword [ebp + 0x28]
mov dword [eax + 4], esi
mov dword [eax], 0
test edx, edx
je 0x422a37
mov ecx, dword [ebp + 0x2c]
mov dword [ecx], eax
mov dword [ebp + 0x2c], eax
add dword [ebp + 0x30], 1
jmp 0x421bf4
mov dword [edx + 0x188], 0xffffffff
jmp case.0x423576.3
mov eax, dword [ebp + 0x20c]
cmp eax, 0x1f
jg 0x421e20
lea edx, [eax + 1]
mov dword [ebp + 0x20c], edx
mov dword [ebp + eax*4 + 0x18c], 0
mov dword [ebp + 0xe24], 2
jmp case.0x423576.3
mov edx, dword [ebp + 0xa4]
mov eax, ebp
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.0041c1f0
cmp byte [ebp + 0x10fc], 0
je 0x420dfb
jmp 0x420df1
cmp eax, 0x2540
je 0x422a9e
ja 0x4221b5
cmp eax, 0x2338
jne 0x422989
test byte [ebp], 2
je case.0x423576.3
mov ecx, dword [ebp + 0x128]
test ecx, ecx
jle 0x421f1f
lea edi, [ebp + 0x58]
mov dword [esp + 0x28], 0
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x28]
mov ecx, 0x110b
mov dword [esp], 1
mov eax, ebp
call fcn.00416fc0
mov ecx, dword [ebp + 0x12c]
mov esi, eax
mov eax, dword [eax + 4]
cmp ecx, eax
je 0x421ed5
mov eax, ebp
mov edx, esi
call fcn.00416e40
mov eax, dword [ebp + 0x12c]
xor ebx, ebx
test eax, eax
jle 0x421f05
nop
lea esi, [esi]
mov edx, ebx
mov eax, esi
mov ecx, edi
call fcn.004168c0
mov edx, dword [esi + 0x14]
lea eax, [ebx + ebx*4]
add ebx, 1
cmp ebx, dword [ebp + 0x12c]
lea eax, [edx + eax*4]
mov dword [eax], 0x45
jl 0x421ee0
xor eax, eax
add dword [esp + 0x28], 1
mov word [esi], ax
mov eax, dword [esp + 0x28]
cmp eax, dword [ebp + 0x128]
jl 0x421ea0
mov ebx, dword [esp + 0x30]
cmp byte [ebp + 0x1119], 0
je 0x421f2f
mov dword [ebp + 0x10], 0
mov eax, ebp
call fcn.0041c180
mov eax, dword [ebp + 0x128]
xor edx, edx
mov dword [esp + 4], 0
xor ecx, ecx
mov dword [esp], eax
mov eax, ebp
call fcn.004187a0
jmp case.0x423576.3
mov eax, ebp
call fcn.0041ba60
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
cmp byte [ebp + 0xd5], 0
jne 0x421f92
mov eax, dword [ebp + 0x106c]
cmp dword [eax + 8], 0xfde9
jne case.0x423576.3
mov dword [ebp + 0xe24], 9
jmp case.0x423576.3
xor edx, edx
mov eax, ebp
call fcn.0041e300
mov dword [esp], ebp
call fcn.0041e110
mov dword [ebp + 0xe24], 0
jmp case.0x423576.3
mov dword [esp + 8], 0x15bf
mov dword [esp + 4], str._MoTTY_terminal_terminal.c
mov dword [esp], str.oscp_index___OSCP_NCOLOURS
call fcn.004d8b40
jmp 0x4214bb
mov eax, dword [ebp + 0x10d4]
cmp dword [ebp + 0x30], eax
jge 0x42297d
mov dword [ebp + 0x38], esi
mov eax, dword [ebp + 0x1064]
mov ecx, dword [ebp + 0x10cc]
mov edx, dword [eax]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0x28]
cmp dword [ebp + 0x10cc], 2
je 0x422a74
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x3f
mov edx, 1
cmove eax, edx
mov dword [ebp + 0x210], eax
jmp 0x421cbb
cmp eax, 0x169
je 0x42393c
jbe 0x4222b0
cmp eax, 0x3d44
je 0x423580
jbe 0x422c28
cmp eax, 0x3d47
je 0x423aa0
jbe 0x422f16
cmp eax, 0x3d63
je 0x42369b
cmp eax, 0x3e63
jne 0x42303d
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
mov eax, dword [ebp + 0x1060]
test eax, eax
je case.0x423576.3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xb
mov dword [esp + 4], str.e__0_136_0c
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
cmp byte [ebp + 0xd5], 0
je 0x42222e
mov dword [ebp + 0xe24], 9
jmp case.0x423576.3
cmp eax, 0x37
je 0x422499
cmp eax, 0x38
jne case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
xor edx, edx
mov eax, ebp
call fcn.0041c610
jmp case.0x423576.3
cmp eax, 0x4d
je 0x42240e
cmp eax, 0x5a
jne case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov edi, dword [ebp + 0x1060]
test edi, edi
je case.0x423576.3
lea esi, [ebp + 0xa1e]
mov dword [esp], esi
call sub.msvcrt.dll_strlen
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call fcn.0042a170
jmp case.0x423576.3
cmp eax, 0x2842
je 0x4223e8
cmp eax, 0x2855
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x15c], 0xda00
jmp case.0x423576.3
mov dword [ebp + 0xe24], 1
mov dword [ebp + 0x210], 0
jmp case.0x423576.3
cmp eax, 0x2547
je 0x422994
cmp eax, 0x2830
jne case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x15c], 0xd900
jmp case.0x423576.3
cmp dword [ebp + 0x18c], 2
jne 0x42118c
mov dword [ebp + 0x18c], 1
jmp case.0x423576.3
mov edx, dword [ebp + 0xa4]
mov eax, ebp
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.0041c1f0
jmp 0x4215e9
mov edx, dword [ebp + 0x106c]
cmp dword [edx + 8], 0xfde9
jne 0x421081
jmp 0x4220d0
cmp eax, 0x45
je 0x423990
ja 0x422d32
cmp eax, 0x42
je 0x422bdd
ja 0x422d93
cmp eax, 0x40
jne 0x423171
test byte [ebp], 8
je case.0x423576.3
mov edx, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], edx
mov eax, 1
cmovbe edx, dword [ebp + 0x18c]
test edx, edx
mov dword [ebp + 0x18c], edx
cmove edx, eax
mov eax, ebp
call fcn.0041cb50
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x6e
je 0x4239e3
jbe 0x422ce0
cmp eax, 0x74
je 0x423540
jbe 0x422df0
cmp eax, 0x78
je 0x423730
cmp eax, 0x168
je 0x4236e9
cmp eax, 0x75
jne case.0x423576.3
xor edx, edx
mov eax, ebp
call fcn.0041c610
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov eax, ebp
mov edx, 1
call fcn.0041fab0
mov eax, dword [ebp + 0x1060]
test eax, eax
je 0x422328
mov dword [esp], eax
call fcn.00429ec0
cmp byte [ebp + 0xc5], 0
je 0x422377
cmp byte [ebp + 0x110c], 0
jne 0x422370
cmp dword [ebp + 0x12c], 0x50
mov eax, dword [ebp + 0x128]
je 0x422370
cmp byte [ebp + 0x1081], 0
mov dword [ebp + 0x20f0], 1
mov dword [ebp + 0x20f4], 0x50
mov dword [ebp + 0x20f8], eax
je 0x423caa
mov byte [ebp + 0xc5], 0
cmp byte [ebp + 0x1119], 0
je 0x422387
mov dword [ebp + 0x10], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x160], 0xda00
jmp case.0x423576.3
mov dword [ebp + 0xe24], 2
mov dword [ebp + 0x20c], 1
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x210], 0
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x15c], 0xd800
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov edx, dword [ebp + 0x94]
cmp edx, dword [ebp + 0xa4]
je 0x423a30
test edx, edx
jle 0x422437
sub edx, 1
mov dword [ebp + 0x94], edx
mov byte [ebp + 0xae], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov ecx, dword [ebp + 0x94]
cmp ecx, dword [ebp + 0xa8]
mov dword [ebp + 0x98], 0
je 0x423c6c
mov eax, dword [ebp + 0x128]
sub eax, 1
cmp ecx, eax
jge 0x422486
add ecx, 1
mov dword [ebp + 0x94], ecx
mov byte [ebp + 0xae], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov edx, 1
mov eax, ebp
call fcn.0041c610
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov byte [ebp + 0x13d], 1
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x160], 0xd900
jmp case.0x423576.3
mov eax, dword [ebp + 0x12c]
sub edx, 1
mov ecx, 0x102a
mov dword [ebp + 0x94], edx
sub eax, 1
mov dword [ebp + 0x98], eax
mov dword [esp], 1
mov eax, ebp
call fcn.00416fc0
mov edx, dword [ebp + 0x98]
test edx, edx
jle 0x421644
test byte [eax], 0x20
je 0x421644
sub edx, 1
mov dword [ebp + 0x98], edx
jmp 0x421644
mov eax, dword [ebp + 0x58]
xor edx, edx
xor ecx, ecx
cmp byte [ebp + 0xc6], 0
mov byte [ebp + 0xd4], 0
mov dword [ebp + 0x40], 0x20500
mov byte [ebp + 0x48], 0
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x5c]
mov word [ebp + 0x49], dx
mov byte [ebp + 0x4b], 0
mov byte [ebp + 0x4c], 0
mov word [ebp + 0x4d], cx
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x60]
mov byte [ebp + 0x4f], 0
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x7c], eax
je case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
mov byte [ebp + 0xd4], 0
and dword [ebp + 0x40], 0xfffbffff
jmp case.0x423576.3
or dword [ebp + 0x40], 0x80000
jmp case.0x423576.3
mov dword [ebp + 0xb0], 0
mov dword [ebp + 0x15c], 0xd900
jmp case.0x423576.3
xor ecx, ecx
xor edx, edx
mov eax, ebp
mov dword [esp], 0
call fcn.0041c580
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041e4e0
cmp byte [ebp + 0x1119], 0
je case.0x423576.3
mov dword [ebp + 0x10], 0
jmp case.0x423576.3
mov byte [ebp + 0xad], 0
jmp case.0x423576.3
mov byte [ebp + 0xad], 1
jmp case.0x423576.3
and dword [ebp + 0x40], 0xffefffff
jmp case.0x423576.3
or dword [ebp + 0x40], 0x100000
jmp case.0x423576.3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041e4e0
jmp case.0x423576.3
mov dword [ebp + 0xb0], 0
mov dword [ebp + 0x15c], 0xd800
jmp case.0x423576.3
mov byte [ebp + 0x13d], 0
jmp case.0x423576.3
mov byte [ebp + 0x13d], 1
jmp case.0x423576.3
mov eax, dword [ebp + 0x98]
mov ecx, dword [ebp + 0x94]
mov dword [esp], 1
lea edx, [eax - 1]
mov eax, ebp
call fcn.0041c580
jmp case.0x423576.3
mov eax, dword [ebp + 0x98]
mov ecx, dword [ebp + 0x94]
mov dword [esp], 1
lea edx, [eax + 1]
mov eax, ebp
call fcn.0041c580
jmp case.0x423576.3
movzx eax, byte [ebp + 0x10e3]
mov byte [ebp + 0x13e], 0
test al, al
mov byte [ebp + 0xc9], al
jne 0x422f7b
mov byte [ebp + 0xc8], 1
mov byte [ebp + 0x1088], 0
jmp case.0x423576.3
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0xa8]
cmp edx, ecx
jg case.0x423576.3
mov dword [esp + 4], 1
mov dword [esp], 1
mov eax, ebp
call fcn.0041c1f0
jmp case.0x423576.3
mov byte [ebp + 0xd4], 1
or dword [ebp + 0x40], 0x40000
jmp case.0x423576.3
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041e4e0
mov dword [ebp + 0x98], 0
mov byte [ebp + 0xae], 0
jmp case.0x423576.3
mov byte [ebp + 0xc4], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov byte [ebp + 0xc4], 1
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041e4e0
cmp byte [ebp + 0x1119], 0
je case.0x423576.3
mov dword [ebp + 0x10], 0
jmp case.0x423576.3
mov dword [ebp + 0xe24], 0xe
jmp case.0x423576.3
mov dword [ebp + 0xe24], 0xd
jmp case.0x423576.3
mov eax, dword [ebp + 0x1060]
test eax, eax
je case.0x423576.3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x4e4f75
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
mov dword [ebp + 0xe24], 0xb
jmp case.0x423576.3
and dword [ebp + 0x40], 0xfff7ffff
jmp case.0x423576.3
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp + 0x98]
mov dword [esp], 1
lea ecx, [eax + 1]
mov eax, ebp
call fcn.0041c580
jmp case.0x423576.3
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp + 0x98]
mov dword [esp], 1
lea ecx, [eax - 1]
mov eax, ebp
call fcn.0041c580
jmp case.0x423576.3
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0xa8]
cmp edx, ecx
jg case.0x423576.3
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
mov eax, ebp
call fcn.0041c1f0
jmp case.0x423576.3
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041e4e0
jmp case.0x423576.3
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041e4e0
cmp byte [ebp + 0x1119], 0
je case.0x423576.3
mov dword [ebp + 0x10], 0
jmp case.0x423576.3
mov eax, dword [ebp + 0x94]
cmp eax, 0
je 0x422f55
jle 0x422952
sub eax, 1
mov dword [ebp + 0x94], eax
mov eax, ebp
call fcn.0041c180
mov byte [ebp + 0xae], 0
jmp case.0x423576.3
mov dword [esp], 0
xor ecx, ecx
xor edx, edx
mov eax, ebp
call fcn.0041c580
jmp case.0x423576.3
mov dword [ebp + 0x38], esi
jmp 0x422019
mov byte [ebp + 0x34], 1
mov dword [ebp + 0x38], esi
jmp 0x422019
cmp eax, 0x2538
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov byte [ebp + 0xd5], 1
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
sub eax, 0x2333
mov edi, 1
cmp eax, 3
je 0x4229da
movzx edi, word [eax*4 + 0x4e5838]
mov edx, dword [ebp + 0x94]
mov ecx, 0x1134
mov dword [esp], 1
mov eax, ebp
call fcn.00416fc0
mov ecx, dword [ebp + 0x12c]
cmp ecx, dword [eax + 4]
mov esi, eax
je 0x422a09
mov edx, eax
mov eax, ebp
call fcn.00416e40
movzx eax, byte [ebp + 0x10bc]
cmp byte [esi + 0x18], al
je 0x422a28
mov eax, ebp
mov edx, esi
call fcn.004170f0
movzx eax, byte [ebp + 0x10bc]
mov byte [esi + 0x18], al
mov word [esi], di
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov dword [ebp + 0x28], eax
mov edx, eax
jmp 0x421de6
cmp dword [ebp + 0x20c], 1
jne 0x42118c
cmp dword [ebp + 0x18c], 4
jne 0x42118c
mov dword [ebp + 0x20c], 2
mov dword [ebp + 0x190], 0
jmp case.0x423576.3
mov byte [ebp + 0x135], 1
mov dword [esp + 8], ebp
mov dword [esp + 4], 0x424910
mov dword [esp], 0x64
call fcn.0043fcc0
mov dword [ebp + 0x138], eax
jmp 0x422019
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov byte [ebp + 0xd5], 0
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x160], 0xd800
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp byte [ebp + 0x110b], 0
jne case.0x423576.3
mov dword [ebp + 0x15c], 0xdb00
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov edx, dword [ebp + 0xe20]
mov eax, dword [ebp + 0x98]
mov byte [edx + eax], 1
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
mov dword [ebp + 0xe24], 3
mov byte [ebp + 0x214], 1
mov dword [ebp + 0x218], 0
mov dword [ebp + 0x18c], 0
mov dword [ebp + 0x20c], 1
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov ecx, dword [ebp + 0x94]
cmp ecx, dword [ebp + 0xa8]
je 0x4237a0
mov eax, dword [ebp + 0x128]
sub eax, 1
cmp ecx, eax
jge 0x422ba0
add ecx, 1
mov dword [ebp + 0x94], ecx
mov byte [ebp + 0xae], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x62
je 0x4234e9
jbe 0x422fd4
cmp eax, 0x64
je 0x423b70
jbe 0x423b20
mov edx, dword [ebp]
and dh, 0x20
je case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
mov edx, 1
cmovbe eax, dword [ebp + 0x18c]
test eax, eax
mov dword [ebp + 0x18c], eax
cmove eax, edx
add eax, dword [ebp + 0x94]
mov edx, dword [ebp + 0x98]
mov dword [esp], 1
mov ecx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x247c
je 0x4235c0
jbe 0x423109
cmp eax, 0x2a7c
jne 0x423135
test byte [ebp], 0x40
je case.0x423576.3
cmp dword [ebp + 0x20c], 1
jne case.0x423576.3
mov eax, dword [ebp + 0x18c]
test eax, eax
je case.0x423576.3
cmp byte [ebp + 0x110c], 0
jne 0x422ca3
cmp eax, dword [ebp + 0x128]
mov edx, dword [ebp + 0x12c]
je 0x422ca3
cmp byte [ebp + 0x1081], 0
mov dword [ebp + 0x20f0], 1
mov dword [ebp + 0x20f4], edx
mov dword [ebp + 0x20f8], eax
je 0x42362b
mov dword [ebp + 0xe28], 0
mov dword [ebp + 0xe3c], 0
mov dword [ebp + 0xe40], 0
mov dword [ebp + 0xe34], 0
mov dword [ebp + 0xe38], 0
jmp 0x420b70
cmp eax, 0x69
je 0x42393c
ja 0x4231c5
cmp eax, 0x67
jne 0x4236e0
test byte [ebp], 2
je case.0x423576.3
cmp dword [ebp + 0x20c], 1
jne case.0x423576.3
mov eax, dword [ebp + 0x18c]
test eax, eax
jne 0x423eb3
mov edx, dword [ebp + 0xe20]
mov eax, dword [ebp + 0x98]
mov byte [edx + eax], 0
jmp case.0x423576.3
cmp eax, 0x48
je 0x423bce
jbe 0x4230ad
cmp eax, 0x4a
je 0x42348e
cmp eax, 0x4b
jne case.0x423576.3
mov eax, dword [ebp + 0x18c]
add eax, 1
cmp eax, 3
ja 0x423485
mov edx, eax
shr eax, 1
and edx, 1
and eax, 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 4], 1
mov dword [esp], ebp
call fcn.0041e4e0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x43
je 0x422ff2
cmp eax, 0x44
jne case.0x423576.3
mov eax, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], eax
mov edx, 1
cmovbe eax, dword [ebp + 0x18c]
mov ecx, dword [ebp + 0x94]
test eax, eax
mov dword [ebp + 0x18c], eax
cmove eax, edx
mov edx, dword [ebp + 0x98]
mov dword [esp], 1
sub edx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x72
jne 0x423093
test byte [ebp], 2
je case.0x423576.3
mov esi, dword [ebp + 0x20c]
cmp esi, 2
jg case.0x423576.3
mov edx, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], edx
mov edi, edx
cmovbe edi, dword [ebp + 0x18c]
cmp dword [ebp + 0x190], edx
mov eax, edx
cmovbe eax, dword [ebp + 0x190]
xor ecx, ecx
test edi, edi
mov dword [ebp + 0x18c], edi
mov dword [ebp + 0x190], eax
je 0x422e4b
lea ecx, [edi - 1]
test eax, eax
mov edi, eax
je 0x422e5e
cmp esi, 2
setne al
sub edi, 1
test al, al
je 0x422e61
lea edi, [edx - 1]
cmp edx, edi
jg 0x422e68
lea edi, [edx - 1]
mov edx, edi
sub edx, ecx
test edx, edx
jle case.0x423576.3
cmp byte [ebp + 0xac], 0
mov eax, 0
mov dword [ebp + 0xa4], ecx
mov dword [ebp + 0xa8], edi
mov dword [ebp + 0x98], 0
cmove ecx, eax
mov eax, ebp
mov dword [ebp + 0x94], ecx
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x54
jne 0x4232c5
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov edx, dword [ebp]
and dh, 0x10
mov dword [ebp + 0x18c], eax
je case.0x423576.3
mov edx, eax
mov ecx, dword [ebp + 0xa8]
neg edx
test eax, eax
mov eax, 0xffffffff
cmovne eax, edx
mov edx, dword [ebp + 0xa4]
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, ebp
call fcn.0041c1f0
mov byte [ebp + 0xae], 0
jmp case.0x423576.3
cmp eax, 0x3d45
jne 0x423400
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
mov eax, dword [ebp + 0x18c]
test eax, eax
setne byte [ebp + 0xc9]
jne 0x423cb6
mov byte [ebp + 0xc8], 1
mov byte [ebp + 0x1088], 0
jmp case.0x423576.3
mov eax, dword [ebp + 0x128]
xor edx, edx
mov dword [esp + 4], 1
mov dword [esp], 0xffffffff
lea ecx, [eax - 1]
mov eax, ebp
call fcn.0041c1f0
jmp 0x422952
mov eax, ebp
call fcn.0041b8c0
jmp case.0x423576.3
cmp eax, 0x50
jne case.0x423576.3
test byte [ebp], 8
je case.0x423576.3
mov eax, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov edx, eax
mov dword [ebp + 0x18c], eax
neg edx
test eax, eax
mov eax, 0xffffffff
cmove edx, eax
mov eax, ebp
call fcn.0041cb50
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x60
je 0x423649
cmp eax, 0x61
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x20
je case.0x423576.3
mov eax, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], eax
mov edx, 1
cmovbe eax, dword [ebp + 0x18c]
mov ecx, dword [ebp + 0x94]
test eax, eax
mov dword [ebp + 0x18c], eax
cmove eax, edx
add eax, dword [ebp + 0x98]
mov dword [esp], 1
mov edx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x3d4c
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
mov edx, dword [ebp + 0x58]
mov eax, dword [ebp + 0x18c]
mov dword [ebp + 0x6c], edx
mov edx, dword [ebp + 0x5c]
test eax, eax
sete byte [ebp + 0xc6]
mov dword [ebp + 0x70], edx
mov edx, dword [ebp + 0x60]
mov dword [ebp + 0x74], edx
mov edx, dword [ebp + 0x64]
mov dword [ebp + 0x78], edx
mov edx, dword [ebp + 0x68]
mov dword [ebp + 0x7c], edx
jne case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
cmp eax, 0x73
jne case.0x423576.3
mov edx, 1
mov eax, ebp
call fcn.0041c610
jmp case.0x423576.3
cmp eax, 0x46
jne 0x423640
mov edx, dword [ebp]
and dh, 0x20
je case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
mov edx, 1
cmovbe eax, dword [ebp + 0x18c]
mov ecx, dword [ebp + 0x94]
test eax, eax
mov dword [ebp + 0x18c], eax
mov dword [esp], 1
cmove eax, edx
xor edx, edx
sub ecx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x16c
je 0x423a51
cmp eax, 0x2270
jne case.0x423576.3
mov eax, dword [ebp + 0x18c]
cmp eax, 0x3e
ja case.0x42312e.1
jmp dword [eax*4 + 0x4e5140]
cmp eax, 0x3d43
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
cmp dword [ebp + 0x20c], 1
jle case.0x423576.3
mov eax, dword [ebp + 0x190]
cmp dword [ebp + 0x18c], eax
setbe byte [ebp + 0xc4]
jmp case.0x423576.3
cmp eax, 0x41
jne case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
mov edx, 1
cmovbe eax, dword [ebp + 0x18c]
mov ecx, dword [ebp + 0x94]
test eax, eax
mov dword [ebp + 0x18c], eax
cmove eax, edx
mov edx, dword [ebp + 0x98]
mov dword [esp], 1
sub ecx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x6c
je 0x423a51
cmp eax, 0x6d
jne case.0x423576.3
mov edi, dword [ebp + 0x20c]
xor ecx, ecx
mov esi, dword [esp + 0x38]
test edi, edi
jle 0x42328e
lea edx, [ebp + ecx*4]
mov eax, dword [edx + 0x18c]
cmp eax, 0x6b
ja case.0x4231fe.3
jmp dword [eax*4 + 0x4e523c]
lea eax, [ecx + 2]
cmp eax, edi
jge 0x42323a
cmp dword [edx + 0x190], 5
jne 0x42323a
movzx edx, byte [edx + 0x194]
mov ecx, dword [ebp + 0x40]
mov byte [ebp + 0x48], 0
mov word [ebp + 0x49], 0
mov byte [ebp + 0x4b], 0
and ecx, 0xfffffe00
or edx, ecx
mov ecx, eax
mov dword [ebp + 0x40], edx
lea edx, [ecx + 4]
cmp edx, edi
jge case.0x4231fe.3
cmp dword [ebp + ecx*4 + 0x190], 2
jne case.0x4231fe.3
lea eax, [esi + ecx*4 + 8]
mov byte [ebp + 0x48], 1
mov ecx, dword [eax]
cmp ecx, 0xff
jbe 0x42325f
xor ecx, ecx
mov byte [ebp + 0x49], cl
mov ecx, dword [eax + 4]
cmp ecx, 0xff
jbe 0x42326f
xor ecx, ecx
mov byte [ebp + 0x4a], cl
mov eax, dword [eax + 8]
cmp eax, 0xff
jbe 0x42327e
xor eax, eax
mov byte [ebp + 0x4b], al
mov ecx, edx
add ecx, 1
cmp ecx, edi
jl 0x4231eb
mov eax, dword [ebp + 0x58]
cmp byte [ebp + 0xc6], 0
mov dword [ebp + 0x6c], eax
mov eax, dword [ebp + 0x5c]
mov dword [ebp + 0x70], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x74], eax
mov eax, dword [ebp + 0x64]
mov dword [ebp + 0x78], eax
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x7c], eax
je case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
cmp eax, 0x58
jne case.0x423576.3
test byte [ebp], 1
je case.0x423576.3
mov eax, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
test eax, eax
mov edi, eax
mov dword [ebp + 0x18c], eax
jne 0x4232fc
mov edi, 1
mov edx, dword [ebp + 0x94]
mov esi, dword [ebp + 0x98]
mov ecx, 0x1444
mov dword [esp], 1
mov eax, ebp
call fcn.00416fc0
mov ecx, eax
mov dword [esp + 0x28], eax
movzx eax, byte [ebp + 0x10bc]
cmp byte [ecx + 0x18], al
je 0x423344
mov edx, ecx
mov eax, ebp
call fcn.004170f0
movzx eax, byte [ebp + 0x10bc]
mov ecx, dword [esp + 0x28]
mov byte [ecx + 0x18], al
mov eax, dword [ebp + 0x12c]
mov edx, dword [ebp + 0x98]
mov ecx, eax
sub ecx, edx
cmp ecx, edi
cmovle edi, ecx
mov ecx, dword [ebp + 0x94]
cmp eax, edx
mov dword [esp + 0x30], ecx
lea ecx, [edi + edx]
mov dword [esp + 0x3c], ecx
jl 0x423383
test edx, edx
jle 0x423383
mov ecx, dword [esp + 0x30]
mov eax, ebp
call fcn.0041ca70
mov edx, dword [ebp + 0x98]
add edx, edi
mov ecx, dword [ebp + 0x94]
test edx, edx
jle 0x42339e
cmp edx, dword [ebp + 0x12c]
jg 0x42339e
mov eax, ebp
call fcn.0041ca70
mov eax, dword [esp + 0x30]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov edx, dword [ebp + 0x94]
mov eax, ebp
mov ecx, dword [ebp + 0x98]
call fcn.004187a0
test edi, edi
je 0x4233ec
lea eax, [ebp + 0x6c]
mov edx, esi
mov dword [esp + 0x3c], eax
lea eax, [esi + edi]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
lea edi, [edx + 1]
call fcn.004168c0
cmp edi, dword [esp + 0x30]
mov edx, edi
jne 0x4233d4
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp eax, 0x3d46
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
mov eax, dword [ebp + 0x18c]
cmp eax, 0xf
ja case.0x423576.3
mov edx, eax
and eax, 8
mov byte [ebp + 0x48], 0
and edx, 7
mov word [ebp + 0x49], 0
mov byte [ebp + 0x4b], 0
movsx edx, byte [edx + 0x4e5bbc]
lea edi, [ebp + 0x6c]
lea esi, [ebp + 0x58]
mov ecx, 5
or edx, eax
mov eax, dword [ebp + 0x40]
and eax, 0xfffffe00
or eax, edx
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x3c]
and eax, 0xfffffe00
or eax, edx
cmp byte [ebp + 0xc6], 0
mov dword [ebp + 0x3c], eax
rep movsd dword es:[edi], dword [esi]
je case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
xor eax, eax
xor edx, edx
jmp 0x422d6f
mov eax, dword [ebp + 0x18c]
cmp eax, 3
je 0x423f0f
add eax, 1
cmp eax, 3
ja 0x4234e3
mov edx, eax
shr eax, 1
and edx, 1
and eax, 1
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], ebp
call fcn.0041e4e0
cmp byte [ebp + 0x1119], 0
je 0x4234d7
mov dword [ebp + 0x10], 0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
xor eax, eax
xor edx, edx
jmp 0x4234af
mov eax, dword [ebp + 0x128]
mov edx, dword [ebp + 0x18c]
imul eax, dword [ebp + 0x12c]
mov esi, dword [ebp + 0x1070]
cmp eax, edx
cmova eax, edx
test esi, esi
mov dword [ebp + 0x18c], eax
je case.0x423576.3
test eax, eax
je case.0x423576.3
xor esi, esi
mov edx, dword [ebp + 0x1070]
mov eax, ebp
add esi, 1
call fcn.0041d0f0
cmp esi, dword [ebp + 0x18c]
jb 0x42351f
jmp case.0x423576.3
mov ecx, dword [ebp + 0x20c]
mov eax, dword [ebp + 0x18c]
sub eax, 1
cmp ecx, 1
jle 0x424526
cmp eax, 0x16
ja case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
cmp eax, 0x14
ja case.0x423576.3
jmp dword [eax*4 + 0x4e53ec]
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
mov ecx, dword [ebp + 0x18c]
mov byte [ebp + 0xc9], 0
mov byte [ebp + 0xc8], 1
mov byte [ebp + 0x1088], 0
mov eax, dword [ebp + 0x40]
test ecx, ecx
je 0x423ee3
or eax, 0x200000
mov dword [ebp + 0x40], eax
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 1
je case.0x423576.3
cmp dword [ebp + 0x20c], 1
jg case.0x423576.3
cmp byte [ebp + 0x110c], 0
jne 0x422ca3
mov eax, dword [ebp + 0x18c]
mov edx, dword [ebp + 0x128]
test eax, eax
jne 0x4235fc
mov eax, dword [ebp + 0x10ec]
cmp dword [ebp + 0x12c], eax
je 0x422ca3
cmp byte [ebp + 0x1081], 0
mov dword [ebp + 0x20f0], 1
mov dword [ebp + 0x20f4], eax
mov dword [ebp + 0x20f8], edx
jne 0x422ca3
mov eax, ebp
call fcn.0041b840
jmp 0x422ca3
cmp eax, 0x47
jne case.0x423576.3
mov edx, dword [ebp]
and dh, 0x20
je case.0x423576.3
mov eax, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov ecx, dword [ebp + 0x94]
lea edx, [eax - 1]
mov dword [ebp + 0x18c], eax
test eax, eax
mov eax, 0
mov dword [esp], 0
cmove edx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
mov eax, dword [ebp + 0x18c]
cmp eax, 1
je 0x423efc
jb 0x423ef0
cmp eax, 2
jne case.0x423576.3
mov byte [ebp + 0x142], 1
mov byte [ebp + 0xc4], 1
jmp case.0x423576.3
cmp eax, 0x68
jne case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp dword [ebp + 0x20c], 0
jle case.0x423576.3
xor esi, esi
jmp 0x42370a
mov ecx, dword [ebp + 0x210]
mov edx, dword [ebp + esi*4 + 0x18c]
mov eax, ebp
mov dword [esp], 1
add esi, 1
call fcn.00420560
cmp esi, dword [ebp + 0x20c]
jl 0x423704
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov eax, dword [ebp + 0x1060]
test eax, eax
je case.0x423576.3
mov edi, dword [ebp + 0x18c]
cmp edi, 1
mov dword [esp + 0x28], edi
ja case.0x423576.3
lea edx, [esp + 0x50]
mov esi, str.e_2_1_1_112_112_1_0x
mov ecx, 0x15
mov edi, edx
rep movsb byte es:[edi], byte [esi]
movzx ecx, byte [esp + 0x28]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x14
mov dword [esp + 4], edx
mov dword [esp], eax
add byte [esp + 0x52], cl
call fcn.0042a170
jmp case.0x423576.3
mov edx, dword [ebp + 0xa4]
mov eax, ebp
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.0041c1f0
jmp 0x422ba0
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov edx, dword [ebp]
and dh, 0x10
mov dword [ebp + 0x18c], eax
je case.0x423576.3
test eax, eax
mov edx, 1
mov ecx, dword [ebp + 0xa8]
cmove eax, edx
mov edx, dword [ebp + 0xa4]
mov dword [esp + 4], 1
mov dword [esp], eax
mov eax, ebp
call fcn.0041c1f0
mov byte [ebp + 0xae], 0
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x40
je case.0x423576.3
mov esi, dword [ebp + 0x12c]
cmp dword [ebp + 0x18c], esi
cmovbe esi, dword [ebp + 0x18c]
mov edx, dword [ebp + 0x98]
mov eax, dword [ebp + 0x94]
mov dword [esp + 0x2c], edx
mov ecx, edx
test esi, esi
mov dword [ebp + 0x18c], esi
mov dword [esp + 0x28], eax
mov edx, eax
je 0x423ed9
test esi, esi
jle 0x4238b7
mov edi, dword [ebp + 0x98]
test edi, edi
jle 0x4238b7
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
mov ecx, ebx
lea eax, [edi - 1]
jmp 0x42388d
mov edx, dword [ebp + 0xe20]
movzx edx, byte [edx + eax]
sub eax, 1
test dl, dl
jne 0x4238d2
test eax, eax
mov edi, eax
mov dword [ebp + 0x98], eax
jne 0x42387c
mov esi, dword [ebp + 0x94]
mov edi, dword [ebp + 0x98]
mov ebx, ecx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x2c]
mov eax, ebp
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.004187a0
jmp case.0x423576.3
sub esi, 1
jne 0x423877
jmp 0x423899
test byte [ebp], 8
je case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov edx, dword [ebp + 0x94]
mov ecx, dword [ebp + 0xa8]
cmp edx, ecx
mov dword [ebp + 0x18c], eax
jg 0x423930
or esi, 0xffffffff
test eax, eax
je 0x42391e
neg eax
mov esi, eax
mov dword [esp + 4], 0
mov dword [esp], esi
mov eax, ebp
call fcn.0041c1f0
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
cmp dword [ebp + 0x20c], 1
jne case.0x423576.3
cmp dword [ebp + 0x18c], 5
je 0x423e52
cmp dword [ebp + 0x18c], 4
jne case.0x423576.3
cmp byte [ebp + 0xe4], 0
je case.0x423576.3
mov eax, ebp
call fcn.0041b9b0
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x20
je case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
mov edx, 1
cmovbe eax, dword [ebp + 0x18c]
test eax, eax
mov dword [ebp + 0x18c], eax
cmove eax, edx
add eax, dword [ebp + 0x94]
xor edx, edx
mov dword [esp], 1
mov ecx, eax
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov eax, dword [ebp + 0x1060]
test eax, eax
je case.0x423576.3
mov edx, dword [ebp + 0x18c]
cmp edx, 6
je 0x423de9
cmp edx, 5
jne case.0x423576.3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp + 4], str.e_0n
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
mov ecx, dword [ebp + 0xa8]
mov eax, ebp
mov dword [esp + 4], 1
mov dword [esp], 0xffffffff
call fcn.0041c1f0
jmp 0x422437
test byte [ebp], 2
je case.0x423576.3
cmp dword [ebp + 0x20c], 0
jle case.0x423576.3
xor esi, esi
jmp 0x423a76
mov ecx, dword [ebp + 0x210]
mov edx, dword [ebp + esi*4 + 0x18c]
mov eax, ebp
mov dword [esp], 0
add esi, 1
call fcn.00420560
cmp esi, dword [ebp + 0x20c]
jl 0x423a70
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x10
je case.0x423576.3
mov edx, dword [ebp + 0x18c]
cmp edx, 0xf
ja case.0x423576.3
mov eax, edx
and edx, 8
mov byte [ebp + 0x4c], 0
and eax, 7
mov word [ebp + 0x4d], 0
mov byte [ebp + 0x4f], 0
movsx eax, byte [eax + 0x4e5bbc]
lea edi, [ebp + 0x6c]
lea esi, [ebp + 0x58]
mov ecx, 5
or eax, edx
mov edx, dword [ebp + 0x40]
shl eax, 9
and edx, 0xfffc01ff
or edx, eax
mov dword [ebp + 0x40], edx
mov edx, dword [ebp + 0x3c]
and edx, 0xfffc01ff
or eax, edx
cmp byte [ebp + 0xc6], 0
mov dword [ebp + 0x3c], eax
rep movsd dword es:[edi], dword [esi]
je case.0x423576.3
mov eax, ebp
call fcn.00418780
jmp case.0x423576.3
test byte [ebp], 2
je case.0x423576.3
mov edx, dword [ebp + 0x1060]
test edx, edx
je case.0x423576.3
lea esi, [ebp + 0xa1e]
xor eax, eax
or ecx, 0xffffffff
mov edi, esi
repne scasb al, byte es:[edi]
mov dword [esp + 0xc], 0
mov dword [esp + 4], esi
mov eax, ecx
mov dword [esp], edx
not eax
sub eax, 1
mov dword [esp + 8], eax
call fcn.0042a170
jmp case.0x423576.3
mov edx, dword [ebp]
and dh, 0x20
je case.0x423576.3
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
cmp byte [ebp + 0xac], 0
mov dword [ebp + 0x18c], eax
jne 0x423c49
mov edx, 0xffffffff
xor esi, esi
xor ecx, ecx
add edx, eax
test eax, eax
mov eax, ebp
cmovne ecx, edx
mov edx, dword [ebp + 0x98]
mov dword [esp], esi
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
cmp dword [ebp + 0x20c], 1
jle 0x423dda
mov eax, dword [ebp + 0x128]
cmp dword [ebp + 0x18c], eax
cmovbe eax, dword [ebp + 0x18c]
mov edx, dword [ebp + 0x12c]
cmp dword [ebp + 0x190], edx
cmovbe edx, dword [ebp + 0x190]
cmp byte [ebp + 0xac], 0
mov dword [ebp + 0x18c], eax
mov dword [ebp + 0x190], edx
jne 0x423c5c
mov edi, 0xffffffff
xor esi, esi
xor ecx, ecx
add edi, eax
test eax, eax
lea eax, [edx - 1]
cmovne ecx, edi
test edx, edx
mov edx, 0
cmovne edx, eax
mov dword [esp], esi
mov eax, ebp
call fcn.0041c580
mov eax, ebp
call fcn.0041c180
jmp case.0x423576.3
mov ecx, dword [ebp + 0xa4]
mov esi, 2
lea edx, [ecx - 1]
jmp 0x423bab
mov ecx, dword [ebp + 0xa4]
mov esi, 2
lea edi, [ecx - 1]
jmp 0x423c1f
mov edx, dword [ebp + 0xa4]
mov eax, ebp
mov dword [esp + 4], 1
mov dword [esp], 1
call fcn.0041c1f0
jmp 0x422486
mov edx, dword [ebp + 0x40]
sub eax, 0x5c
mov byte [ebp + 0x4c], 0
shl eax, 9
and edx, 0xfffc01ff
or eax, edx
mov dword [ebp + 0x40], eax
jmp case.0x4231fe.3
mov eax, ebp
call fcn.0041b840
jmp 0x422370
mov eax, ebp
call fcn.0041b8c0
jmp case.0x423576.3
mov eax, dword [ebp]
and eax, 0xfffffe00
or eax, 0x1f
mov dword [ebp], eax
jmp case.0x423576.3
sub eax, 0x3d
cmp eax, 8
ja case.0x423576.3
or dword [ebp], 0x1ff
jmp case.0x423576.3
and dword [ebp], 0x1ff
jmp case.0x423576.3
mov dword [ebp], 0xffff
jmp case.0x423576.3
mov eax, dword [ebp]
and eax, 0xfffffe00
or eax, 0xf
mov dword [ebp], eax
jmp case.0x423576.3
cmp dword [ebp + 0x20c], 1
lea eax, [ebp + 0xa1e]
mov dword [ebp + 0xa1e], 0x3f5b1b
mov dword [esp + 0x28], eax
jle 0x423da3
lea edx, [esp + 0x50]
mov edi, ebp
mov esi, 1
mov ebp, ebx
mov ebx, edx
jmp 0x423d69
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov ecx, dword [esp + 0x28]
mov edx, 0x3b
mov word [ecx + eax], dx
mov eax, dword [edi + esi*4 + 0x18c]
mov dword [esp + 4], 0x4e4f57
add esi, 1
mov dword [esp], ebx
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov eax, dword [esp + 0x28]
mov dword [esp + 4], ebx
mov dword [esp], eax
call sub.msvcrt.dll_strcat
cmp esi, dword [edi + 0x20c]
jl 0x423d50
mov ebx, ebp
mov ebp, edi
mov edi, dword [esp + 0x28]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x28]
mov eax, ecx
not eax
mov word [edi + eax - 1], 0x63
jmp case.0x423576.3
mov dword [ebp], 0x1001
jmp case.0x423576.3
mov dword [ebp], 0xffff
jmp case.0x423576.3
mov dword [ebp + 0x190], 0
jmp 0x423bdb
mov eax, dword [ebp + 0x98]
lea edx, [esp + 0x50]
mov dword [esp + 0x28], edx
add eax, 1
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x94]
mov dword [esp], edx
mov dword [esp + 4], str.e__d__dR
add eax, 1
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x28]
xor eax, eax
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov dword [esp + 0xc], 0
mov dword [esp + 4], edx
mov eax, ecx
not eax
sub eax, 1
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
mov dword [esp + 4], 0x8d
mov eax, dword [ebp + 0x107c]
mov dword [esp], eax
call fcn.004caf10
cmp byte [eax], 0
mov esi, eax
je 0x423960
cmp dword [ebp + 0x210], 0
lea eax, [ebp + 0xec]
mov byte [ebp + 0xe4], 1
mov dword [ebp + 0xe8], 0
sete byte [ebp + 0xe5]
mov dword [esp], eax
call fcn.004c9560
mov dword [esp], esi
call fcn.00434c80
mov dword [ebp + 0x100], eax
jmp case.0x423576.3
cmp eax, 3
jne case.0x423576.3
xor eax, eax
cmp eax, dword [ebp + 0x12c]
jge case.0x423576.3
mov edx, dword [ebp + 0xe20]
mov byte [edx + eax], 0
add eax, 1
jmp 0x423ebe
mov esi, 1
jmp 0x423863
and eax, 0xffdfffff
mov dword [ebp + 0x40], eax
jmp case.0x423576.3
mov byte [ebp + 0xc4], 0
jmp case.0x423576.3
mov byte [ebp + 0x142], 0
mov byte [ebp + 0xc4], 1
jmp case.0x423576.3
cmp byte [ebp + 0x110e], 0
jne 0x4234c7
mov dword [esp], ebp
call fcn.0041d860
jmp 0x4234c7
mov edx, dword [ebp + 0x1060]
test edx, edx
je case.0x423576.3
mov eax, dword [ebp + 0x1114]
test eax, eax
je case.0x423576.3
cmp eax, 2
mov esi, 0x4e4eca
jne 0x423f55
mov esi, dword [ebp + 0x1148]
xor eax, eax
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov eax, ecx
mov dword [esp + 8], 3
mov dword [esp + 4], 0x4e4f3e
not eax
lea edi, [eax - 1]
call fcn.0042a170
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0x4e4f3b
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
cmp dword [ebp + 0x1060], 0
je case.0x423576.3
mov eax, dword [ebp + 0x12c]
lea edx, [esp + 0x50]
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x128]
mov dword [esp], edx
mov dword [esp + 4], str.e_8__d__dt
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
cmp dword [ebp + 0x1060], 0
je case.0x423576.3
mov eax, dword [ebp + 0x20c4]
lea edx, [esp + 0x50]
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x20c8]
mov dword [esp], edx
mov dword [esp + 4], str.e_4__u__ut
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
cmp dword [ebp + 0x1060], 0
je case.0x423576.3
mov eax, dword [ebp + 0x20c0]
lea edx, [esp + 0x50]
mov dword [esp + 0x28], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x20bc]
mov dword [esp], edx
mov dword [esp + 4], str.e_3__u__ut
mov dword [esp + 8], eax
call sub.msvcrt.dll_sprintf
mov edx, dword [esp + 0x28]
mov dword [esp + 0xc], 0
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
mov edx, dword [ebp + 0x1060]
test edx, edx
je case.0x423576.3
cmp byte [ebp + 0x1158], 0
mov ecx, str.e_2t
mov eax, str.e_1t
mov dword [esp + 0xc], 0
mov dword [esp + 8], 4
mov dword [esp], edx
cmovne eax, ecx
mov dword [esp + 4], eax
call fcn.0042a170
jmp case.0x423576.3
sub ecx, 1
je case.0x423576.3
cmp dword [ebp + 0x190], 0
mov byte [ebp + 0x20dc], 1
setne byte [ebp + 0x20dd]
cmp byte [ebp + 0x1081], 0
jne case.0x423576.3
mov eax, ebp
call fcn.0041b840
jmp case.0x423576.3
cmp ecx, 2
jle case.0x423576.3
cmp byte [ebp + 0x110c], 0
jne case.0x423576.3
mov eax, dword [ebp + 0x190]
test eax, eax
jne 0x42418e
mov eax, dword [ebp + 0x10e8]
mov edx, dword [ebp + 0x194]
test edx, edx
jne 0x42419e
mov edx, dword [ebp + 0x10ec]
cmp dword [ebp + 0x12c], edx
je 0x4245c7
cmp byte [ebp + 0x1081], 0
mov dword [ebp + 0x20f0], 1
mov dword [ebp + 0x20f4], edx
mov dword [ebp + 0x20f8], eax
jne case.0x423576.3
jmp 0x42415c
cmp byte [ebp + 0x1081], 0
mov byte [ebp + 0x20e2], 1
jne case.0x423576.3
jmp 0x42415c
test dword [ebp], 0x4010
jne 0x424215
mov dword [ebp + 0xe24], 0
jmp case.0x4231fe.3
test dword [ebp], 0x4010
je 0x4241f1
and dword [ebp + 0x40], 0xffdfffff
jmp case.0x4231fe.3
and dword [ebp + 0x40], 0xffefffff
jmp case.0x4231fe.3
test dword [ebp], 0x4010
je 0x4241f1
and dword [ebp + 0x40], 0xfff7ffff
jmp case.0x4231fe.3
test dword [ebp], 0x4010
je 0x4241f1
and dword [ebp + 0x40], 0xfefbffff
jmp case.0x4231fe.3
mov eax, dword [ebp]
test ah, 0x40
je 0x4241f1
test al, 4
je 0x4241f1
or dword [ebp + 0x40], 0x80000
jmp case.0x4231fe.3
mov eax, dword [ebp]
test ah, 0x10
je 0x4241f1
cmp byte [ebp + 0x110b], 0
jne case.0x4231fe.3
mov dword [ebp + 0xcc], 2
jmp case.0x4231fe.3
mov eax, dword [ebp]
test ah, 0x10
je 0x4241f1
cmp byte [ebp + 0x110b], 0
jne case.0x4231fe.3
mov dword [ebp + 0xcc], 1
jmp case.0x4231fe.3
mov eax, dword [ebp]
test ah, 0x10
je 0x4241f1
cmp byte [ebp + 0x110b], 0
jne case.0x4231fe.3
mov dword [ebp + 0xcc], 0
jmp case.0x4231fe.3
or dword [ebp + 0x40], 0x2000000
jmp case.0x4231fe.3
or dword [ebp + 0x40], 0x100000
jmp case.0x4231fe.3
mov eax, dword [ebp]
test ah, 0x10
je 0x4241f1
mov byte [ebp + 0xc9], 0
or dword [ebp + 0x40], 0x200000
mov byte [ebp + 0xc8], 1
mov byte [ebp + 0x1088], 0
jmp case.0x4231fe.3
test byte [ebp], 4
je 0x4241f1
or dword [ebp + 0x40], 0x200000
jmp case.0x4231fe.3
mov eax, dword [ebp]
jmp 0x424253
mov eax, dword [ebp]
test ah, 0x40
je 0x4241f1
or dword [ebp + 0x40], 0x1000000
jmp case.0x4231fe.3
test byte [ebp], 4
je 0x4241f1
or dword [ebp + 0x40], 0x40000
jmp case.0x4231fe.3
mov eax, dword [ebp + 0x3c]
mov edx, dword [ebp + 0x64]
mov dword [ebp + 0x40], eax
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x4c], edx
mov dword [ebp + 0x48], eax
jmp case.0x4231fe.3
mov edx, dword [ebp + 0x40]
sub eax, 0x52
mov byte [ebp + 0x48], 0
and edx, 0xfffffe00
or eax, edx
mov dword [ebp + 0x40], eax
jmp case.0x4231fe.3
mov eax, dword [ebp + 0x40]
mov byte [ebp + 0x4c], 0
and eax, 0xfffc01ff
or eax, 0x20400
mov dword [ebp + 0x40], eax
jmp case.0x4231fe.3
lea eax, [ecx + 2]
cmp eax, edi
jge 0x4243ef
cmp dword [edx + 0x190], 5
jne 0x4243ef
mov edx, dword [edx + 0x194]
mov ecx, dword [ebp + 0x40]
mov byte [ebp + 0x4c], 0
mov word [ebp + 0x4d], 0
mov byte [ebp + 0x4f], 0
shl edx, 9
and ecx, 0xfffc01ff
and edx, 0x1fe00
or edx, ecx
mov ecx, eax
mov dword [ebp + 0x40], edx
lea edx, [ecx + 4]
cmp edx, edi
jge case.0x4231fe.3
cmp dword [ebp + ecx*4 + 0x190], 2
jne case.0x4231fe.3
lea eax, [esi + ecx*4 + 8]
mov byte [ebp + 0x4c], 1
mov ecx, dword [eax]
cmp ecx, 0xff
jbe 0x42441c
xor ecx, ecx
mov byte [ebp + 0x4d], cl
mov ecx, dword [eax + 4]
cmp ecx, 0xff
jbe 0x42442c
xor ecx, ecx
mov byte [ebp + 0x4e], cl
mov eax, dword [eax + 8]
cmp eax, 0xff
jbe 0x42443b
xor eax, eax
mov byte [ebp + 0x4f], al
mov ecx, edx
jmp case.0x4231fe.3
mov edx, dword [ebp + 0x40]
sub eax, 0x28
mov byte [ebp + 0x4c], 0
shl eax, 9
and edx, 0xfffc01ff
or eax, edx
mov dword [ebp + 0x40], eax
jmp case.0x4231fe.3
mov eax, dword [ebp + 0x40]
mov byte [ebp + 0x48], 0
and eax, 0xfffffe00
or ah, 1
mov dword [ebp + 0x40], eax
jmp case.0x4231fe.3
mov edx, dword [ebp + 0x40]
sub eax, 0x1e
mov byte [ebp + 0x48], 0
and edx, 0xfffffe00
or eax, edx
mov dword [ebp + 0x40], eax
jmp case.0x4231fe.3
and dword [ebp + 0x40], 0xfdffffff
jmp case.0x4231fe.3
cmp ecx, 2
jle case.0x423576.3
cmp byte [ebp + 0x110c], 0
jne case.0x423576.3
mov eax, dword [ebp + 0x190]
cmp byte [ebp + 0x1081], 0
mov byte [ebp + 0x20cc], 1
mov dword [ebp + 0x20d0], eax
mov eax, dword [ebp + 0x194]
mov dword [ebp + 0x20d4], eax
jne case.0x423576.3
jmp 0x42415c
cmp byte [ebp + 0x1081], 0
mov byte [ebp + 0x20da], 1
mov byte [ebp + 0x20db], 1
jne case.0x423576.3
jmp 0x42415c
cmp byte [ebp + 0x1081], 0
mov byte [ebp + 0x20da], 1
mov byte [ebp + 0x20db], 0
jne case.0x423576.3
jmp 0x42415c
cmp eax, 0x16
jbe 0x42467d
mov edx, dword [ebp]
and dh, 1
je case.0x423576.3
cmp byte [ebp + 0x110c], 0
jne 0x422ca3
cmp dword [ebp + 0x128], 0x18
mov eax, dword [ebp + 0x12c]
je 0x422ca3
cmp byte [ebp + 0x1081], 0
mov dword [ebp + 0x20f0], 1
mov dword [ebp + 0x20f4], eax
mov dword [ebp + 0x20f8], 0x18
jne 0x422ca3
jmp 0x42362b
cmp byte [ebp + 0x1081], 0
mov byte [ebp + 0x20d8], 1
mov byte [ebp + 0x20d9], 1
jne case.0x423576.3
jmp 0x42415c
cmp byte [ebp + 0x1081], 0
mov byte [ebp + 0x20d8], 1
mov byte [ebp + 0x20d9], 0
jne case.0x423576.3
jmp 0x42415c
cmp dword [ebp + 0x128], eax
jne 0x4241aa
jmp case.0x423576.3
mov edx, dword [ebp + 0x1060]
test edx, edx
je case.0x423576.3
mov eax, dword [ebp + 0x1114]
test eax, eax
je case.0x423576.3
cmp eax, 2
mov esi, 0x4e4eca
jne 0x424604
mov esi, dword [ebp + 0x114c]
xor eax, eax
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov dword [esp], edx
mov dword [esp + 0xc], 0
mov eax, ecx
mov dword [esp + 8], 3
mov dword [esp + 4], 0x4e4f37
not eax
lea edi, [eax - 1]
call fcn.0042a170
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0x4e4f3b
mov eax, dword [ebp + 0x1060]
mov dword [esp], eax
call fcn.0042a170
jmp case.0x423576.3
cmp ecx, 1
jne case.0x423576.3
jmp 0x423561