Function at 0x4093b0
Capabilities:
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xfc
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0x104]
push ebx
mov ebx, dword [eax]
mov eax, dword [esp + 0x10c]
push ebp
push esi
mov esi, dword [eax]
mov eax, ebx
shr eax, 0xb
and eax, 1
mov dword [esp + 0x2c], eax
mov eax, ebx
shr eax, 9
and eax, 1
mov dword [esp + 0xc4], eax
xor eax, 1
mov dword [esp + 0xc8], eax
mov eax, 0xfffffffe
xor ecx, ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], eax
mov eax, ebx
push edi
mov edi, dword [edx]
xor edx, edx
xor ebp, ebp
and eax, 1
shl eax, 0x1c
mov dword [esp + 0x54], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x9c], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0x60], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x64], ecx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x130]
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
cmp ebx, ecx
jne 0x409488
cmp edx, ecx
je 0x409488
mov esi, edx
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0x134], ecx
je 0x409547
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x10]
lea eax, [ecx + edx - 0x64]
cmp edi, eax
ja 0x40cde2
mov eax, dword [esp + 0x9c]
cmp edi, eax
jae 0x4094b8
mov dword [esp + 0x14], eax
mov edi, eax
mov ecx, dword [esp + 0x134]
mov eax, dword [ecx]
mov edx, edi
sub edx, dword [esp + 0x9c]
mov ecx, 0x7fffffeb
sub ecx, eax
cmp ecx, edx
jl 0x40ce05
sub eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x134]
add eax, edi
xor ecx, ecx
mov dword [edx], eax
cmp ebp, ecx
je 0x409531
cmp ebp, dword [esp + 0xb4]
jbe 0x40953e
mov esi, dword [esp + 0xb4]
mov eax, edi
sub eax, ebp
push eax
push ebp
push esi
call sub.MSVCRT.dll_memmove
mov ecx, esi
sub ecx, ebp
add edi, ecx
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
add esp, 0xc
mov dword [esp + 0x14], edi
xor ecx, ecx
mov dword [esp + 0x9c], edi
jmp 0x409561
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x14], edx
mov edi, edx
mov dword [esp + 0x9c], edi
jmp 0x409561
mov edx, dword [eax + 0x34]
mov eax, dword [eax + 0x10]
lea edx, [edx + eax - 0x64]
mov eax, dword [esp + 0x130]
cmp dword [eax + 0x24], edx
ja 0x40ce28
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x60], ecx
je 0x4096bb
cmp ebx, ecx
je 0x4096bb
cmp ebx, 0x5c
jne 0x40959b
cmp byte [esi + 1], 0x45
jne 0x40959b
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
mov dword [esp + 0x60], ecx
inc esi
xor ecx, ecx
jmp 0x409465
cmp eax, ecx
je 0x4095dc
cmp dword [esp + 0x134], ecx
jne 0x4095d8
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl edx, 8
or edx, eax
mov eax, esi
mov esi, dword [esp + 0x64]
sub eax, edx
mov edx, dword [esp + 0x130]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [esi + 4], dl
mov edx, esi
mov byte [edx + 5], al
mov esi, dword [esp + 0x10]
mov dword [esp + 0x64], ecx
test dword [esp + 0x2c], 0x4000
je case.0x40982b.1
mov byte [edi], 0x70
mov ecx, esi
mov esi, dword [esp + 0x130]
lea eax, [edi + 1]
mov byte [eax], 0xff
mov edx, ecx
sub edx, dword [esi + 0x18]
mov dword [esp + 0x64], edi
sar edx, 8
mov byte [eax + 1], dl
sub cl, byte [esi + 0x18]
mov word [eax + 3], 0
mov byte [eax + 2], cl
mov esi, dword [esp + 0x10]
add eax, 5
mov dword [esp + 0x14], eax
cmp dword [esp + 0x30], 0
mov eax, 1
mov byte [esp + 0xc0], bl
je 0x40965e
cmp ebx, 0xc0
jl 0x40965e
mov dl, byte [esi + 1]
inc esi
and dl, 0xc0
cmp dl, 0x80
jne 0x40965e
mov dword [esp + 0x10], esi
mov cl, byte [esi]
inc esi
mov byte [esp + eax + 0xc0], cl
mov dl, byte [esi]
and dl, 0xc0
inc eax
cmp dl, 0x80
je 0x409645
test byte [esp + 0x2c], 1
mov esi, dword [esp + 0x14]
setne cl
add cl, 0x1d
mov byte [esi], cl
mov dword [esp + 0x24], esi
inc esi
xor ecx, ecx
mov dword [esp + 0x14], esi
test eax, eax
jle 0x409693
mov edi, edi
mov dl, byte [esp + ecx + 0xc0]
mov byte [esi], dl
inc ecx
inc esi
cmp ecx, eax
jl 0x409680
mov dword [esp + 0x14], esi
mov cl, byte [esp + 0xc0]
cmp cl, 0xd
je 0x4096a8
cmp cl, 0xa
jne 0x40cd3f
mov edi, dword [esp + 0x130]
or dword [edi + 0x50], 0x800
jmp 0x40cd46
cmp ebx, 0x2a
je 0x409832
cmp ebx, 0x2b
je 0x409832
cmp ebx, 0x3f
je 0x409832
cmp ebx, 0x7b
jne 0x4096eb
lea eax, [esi + 1]
call fcn.00406740
test eax, eax
jne 0x409832
mov ecx, dword [esp + 0x64]
xor edi, edi
test ecx, ecx
je 0x409741
mov eax, dword [esp + 0xb8]
mov edx, eax
dec eax
mov dword [esp + 0xb8], eax
test edx, edx
jg 0x409741
cmp dword [esp + 0x134], edi
jne 0x40973d
movzx edx, byte [ecx + 2]
movzx eax, byte [ecx + 3]
shl edx, 8
or edx, eax
mov eax, esi
sub eax, edx
mov edx, dword [esp + 0x130]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov esi, dword [esp + 0x10]
mov dword [esp + 0x64], edi
test byte [esp + 0x2c], 8
je 0x4097d5
mov eax, dword [esp + 0x130]
mov ecx, dword [eax + 0xc]
test byte [ebx + ecx], 1
jne 0x40cdce
cmp ebx, 0x23
jne 0x4097d1
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x4097cf
mov edx, dword [esp + 0x130]
mov ecx, dword [edx + 0x60]
test ecx, ecx
je 0x40983c
mov eax, dword [edx + 0x1c]
cmp esi, eax
jae 0x409864
mov edx, dword [esp + 0x30]
push edx
mov edx, dword [esp + 0x134]
add edx, 0x64
push edx
push eax
push ecx
push esi
call fcn.00420f40
mov esi, dword [esp + 0x24]
add esp, 0x14
test eax, eax
je 0x409864
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx + 0x64]
lea esi, [esi + edx - 1]
mov dword [esp + 0x10], esi
cmp byte [esi], 0
jne 0x40cdce
xor ebx, ebx
mov ebp, dword [esp + 0x24]
test dword [esp + 0x2c], 0x4000
je 0x40981b
test edi, edi
jne 0x40981b
mov eax, dword [esp + 0x14]
mov byte [eax], 0x70
mov ecx, esi
mov esi, dword [esp + 0x130]
mov byte [eax + 1], 0xff
mov edx, ecx
sub edx, dword [esi + 0x18]
mov dword [esp + 0x64], eax
sar edx, 8
mov byte [eax + 2], dl
sub cl, byte [esi + 0x18]
mov word [eax + 4], di
mov byte [eax + 3], cl
mov esi, dword [esp + 0x10]
add eax, 6
mov dword [esp + 0x14], eax
cmp ebx, 0x7c
ja case.0x40982b.1
movzx eax, byte [ebx + 0x40d358]
jmp dword [eax*4 + 0x40d324]
mov edi, 1
jmp 0x409741
mov ecx, dword [edx + 0x64]
mov ebx, dword [edx + 0x1c]
sub ebx, ecx
cmp esi, ebx
ja 0x409864
cmp al, byte [edx + 0x68]
jne 0x409864
cmp ecx, 1
je 0x4097b4
mov al, byte [esi + 1]
mov ecx, edx
cmp al, byte [ecx + 0x69]
je 0x4097b4
inc esi
cmp dword [esp + 0x30], 0
mov dword [esp + 0x10], esi
je 0x40988d
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x40988d
lea ebx, [ebx]
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
je 0x409880
mov al, byte [esi]
test al, al
jne 0x409770
jmp 0x4097cf
test byte [esp + 0x2c], 2
mov dword [esp + 0x24], 0
je 0x4098dc
cmp dword [esp + 0x38], 0xfffffffe
jne 0x4098ba
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
mov byte [eax], 0x1a
mov esi, dword [esp + 0x10]
inc eax
inc esi
mov dword [esp + 0x14], eax
mov edi, eax
xor ecx, ecx
jmp 0x409465
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
mov byte [eax], 0x19
mov esi, dword [esp + 0x10]
inc eax
inc esi
mov dword [esp + 0x14], eax
mov edi, eax
xor ecx, ecx
jmp 0x409465
test byte [esp + 0x2c], 2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
setne cl
add cl, 0x1b
mov byte [eax], cl
mov esi, dword [esp + 0x10]
inc eax
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
inc esi
mov dword [esp + 0x14], eax
mov edi, eax
xor ecx, ecx
jmp 0x409465
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x409942
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
shr ecx, 2
and cl, 1
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
or cl, 0xc
mov byte [eax], cl
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x24]
inc eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x6c]
inc esi
mov dword [esp + 0x14], eax
mov edi, eax
xor ecx, ecx
jmp 0x409465
mov edx, dword [esp + 0x130]
test dword [edx + 0x4c], 0x2000000
je case.0x40982b.1
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x40
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x4099ce
cmp al, 0x2e
je 0x4099ce
cmp al, 0x3d
jne 0x4099eb
lea ecx, [esp + 0xa0]
push ecx
push esi
call fcn.004081c0
mov esi, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x40ceb8
xor edi, edi
mov dword [esp + 0x1c], edi
inc esi
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
cmp ebx, 0x5c
jne 0x409a21
inc esi
cmp byte [esi], 0x45
je 0x4099f1
push 3
push 0x43bf78
push esi
call sub.MSVCRT.dll_strncmp
mov esi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x409a87
add esi, 3
jmp 0x4099f1
test edi, edi
jne 0x409a2f
cmp ebx, 0x5e
jne 0x409a2f
lea edi, [ebx - 0x5d]
jmp 0x4099ed
cmp ebx, 0x5d
jne 0x409a87
mov edx, dword [esp + 0x130]
test dword [edx + 0x4c], 0x2000000
je 0x409a87
mov eax, dword [esp + 0x14]
mov ecx, edi
neg ecx
sbb cl, cl
and cl, 0x76
add cl, 0x97
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x409a6b
or eax, 0xffffffff
mov dword [esp + 0x38], eax
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
mov dword [esp + 0x68], eax
xor ecx, ecx
jmp 0x409465
mov ebp, dword [esp + 0x14]
xor eax, eax
add ebp, 4
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ebp
cmp ebx, eax
je 0x40cf74
cmp dword [esp + 0x30], 0
je 0x409c00
cmp ebx, 0xc0
jl 0x409c00
movzx ebx, byte [esi]
cmp ebx, 0xc0
jl 0x409c00
test bl, 0x20
jne 0x409b21
movzx edx, byte [esi + 1]
and ebx, 0x1f
and edx, 0x3f
shl ebx, 6
or ebx, edx
inc esi
jmp 0x409bfc
test bl, 0x10
jne 0x409b49
movzx eax, byte [esi + 1]
movzx ecx, byte [esi + 2]
and ebx, 0xf
shl ebx, 6
and eax, 0x3f
or ebx, eax
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add esi, 2
jmp 0x409bfc
test bl, 8
jne 0x409b7d
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
movzx ecx, byte [esi + 3]
and ebx, 7
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and eax, 0x3f
or ebx, eax
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
add esi, 3
jmp 0x409bfc
test bl, 4
jne 0x409bba
movzx edx, byte [esi + 1]
movzx eax, byte [esi + 2]
movzx ecx, byte [esi + 3]
and ebx, 3
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 4]
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 4
jmp 0x409bfc
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
movzx eax, byte [esi + 3]
and ebx, 1
shl ebx, 6
and ecx, 0x3f
or ebx, ecx
shl ebx, 6
and edx, 0x3f
or ebx, edx
movzx edx, byte [esi + 4]
shl ebx, 6
and eax, 0x3f
or ebx, eax
movzx eax, byte [esi + 5]
shl ebx, 6
and edx, 0x3f
or ebx, edx
shl ebx, 6
and eax, 0x3f
or ebx, eax
add esi, 5
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x134]
test eax, eax
je 0x409c15
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
sub ecx, ebp
add dword [eax], ecx
cmp dword [esp + 0x60], 0
je 0x409c3d
cmp ebx, 0x5c
jne 0x409e3e
cmp byte [esi + 1], 0x45
jne 0x409e3e
mov dword [esp + 0x60], 0
inc esi
jmp 0x40a226
cmp ebx, 0x5b
jne 0x409dee
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x409c59
cmp al, 0x2e
je 0x409c59
cmp al, 0x3d
jne 0x409e3e
lea edx, [esp + 0xa0]
push edx
push esi
call fcn.004081c0
add esp, 8
test eax, eax
je 0x409e3a
mov eax, dword [esp + 0x130]
mov esi, dword [esp + 0x10]
mov ecx, dword [eax + 8]
xor edi, edi
cmp byte [esi + 1], 0x3a
mov dword [esp + 0x5c], edi
mov dword [esp + 0x44], ecx
jne 0x40cee7
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5e
jne 0x409cb3
mov edi, 1
add esi, edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], esi
mov ebx, dword [esp + 0xa0]
sub ebx, esi
push esi
call fcn.00408240
add esp, 4
test eax, eax
js 0x40cf0a
mov ecx, dword [esp + 0x2c]
test cl, 1
je 0x409cdd
cmp eax, 2
jg 0x409cdd
xor eax, eax
test ecx, 0x20000000
je 0x409d0f
mov ecx, edi
neg ecx
sbb ecx, ecx
and ecx, 0xe
add ecx, eax
mov ecx, dword [ecx*4 + 0x46f550]
test ecx, ecx
je 0x409d0f
mov edx, dword [esp + 0xa0]
inc edx
mov dword [esp + 0x6c], edx
lea esi, [ecx - 1]
jmp 0x40a226
mov edx, dword [esp + 0x44]
lea eax, [eax + eax*2]
mov esi, dword [eax*4 + 0x43b220]
add esi, edx
mov ecx, 8
lea edi, [esp + 0xec]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x43b224]
mov esi, dword [eax*4 + 0x43b228]
test ecx, ecx
js 0x409d74
xor eax, eax
add ecx, edx
test esi, esi
js 0x409d62
jmp 0x409d50
mov dl, byte [ecx + eax]
or byte [esp + eax + 0xec], dl
inc eax
cmp eax, 0x20
jl 0x409d50
jmp 0x409d74
mov dl, byte [ecx + eax]
not dl
and byte [esp + eax + 0xec], dl
inc eax
cmp eax, 0x20
jl 0x409d62
test esi, esi
jns 0x409d7a
neg esi
cmp esi, 1
jne 0x409d89
and byte [esp + 0xed], 0xc3
jmp 0x409d96
cmp esi, 2
jne 0x409d96
and byte [esp + 0xf7], 0x7f
xor eax, eax
cmp dword [esp + 0x5c], eax
je 0x409dc0
mov edi, edi
mov cl, byte [esp + eax + 0xec]
not cl
or byte [esp + eax + 0x7c], cl
inc eax
cmp eax, 0x20
jl 0x409da0
jmp 0x409dd1
mov dl, byte [esp + eax + 0xec]
or byte [esp + eax + 0x7c], dl
inc eax
cmp eax, 0x20
jl 0x409dc0
mov esi, dword [esp + 0xa0]
inc esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x3c], 2
jmp 0x40a226
cmp ebx, 0x5c
jne 0x409e3e
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx + 0x38]
mov esi, dword [esp + 0x11c]
push eax
push edx
lea eax, [esp + 0x18]
push esi
push eax
mov edi, 1
mov eax, edi
call fcn.004067b0
add esp, 0x10
cmp dword [esi], 0
mov ebx, eax
jne 0x40d309
mov esi, ebx
neg esi
cmp esi, 5
jne 0x409ebb
lea ebx, [edi + 7]
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
mov ecx, dword [esp + 0x60]
jne 0x409e61
cmp byte [esi + 2], 0x45
jne 0x409e5d
add esi, 2
xor ecx, ecx
mov dword [esp + 0x10], esi
cmp byte [esi + 1], 0x5c
je 0x409e48
mov dword [esp + 0x60], ecx
mov edi, esi
cmp ebx, 0xd
je 0x409e6d
cmp ebx, 0xa
jne 0x409e7b
mov eax, dword [esp + 0x130]
or dword [eax + 0x50], 0x800
test ecx, ecx
jne 0x40a789
cmp byte [esi + 1], 0x2d
jne 0x40a789
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x40a434
lea ecx, [ecx]
cmp byte [esi + 1], 0x45
jne 0x40a401
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x409ea0
jmp 0x40a434
cmp esi, 0xc
je 0x40cf1c
cmp esi, 0x1a
jne 0x409eea
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x409ee1
cmp byte [esi + 2], 0x45
jne 0x409ee1
add esi, 2
jmp 0x40a226
mov dword [esp + 0x60], edi
jmp 0x40a226
cmp esi, 0x19
je 0x40a222
test ebx, ebx
jns 0x409e3a
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx + 8]
add dword [esp + 0x28], edi
mov edx, 2
add dword [esp + 0x3c], edx
lea ecx, [esi - 6]
cmp ecx, 0x1c
ja case.0x409f25.12
movzx ecx, byte [ecx + 0x40d40c]
jmp dword [ecx*4 + 0x40d3d8]
mov edx, dword [esp + 0x10]
lea eax, [ebx*4 + 0x74]
mov ecx, 0x46f538
sub ecx, eax
mov esi, dword [ecx]
sub esi, edi
sub dword [esp + 0x28], edi
mov dword [esp + 0x6c], edx
jmp 0x40a226
xor ecx, ecx
mov dl, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x409f51
jmp 0x40a222
mov dword [esp + 0x20], edi
xor ecx, ecx
jmp 0x409f70
mov dl, byte [eax + ecx + 0x40]
not dl
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x409f70
jmp 0x40a222
xor ecx, ecx
jmp 0x409f90
mov dl, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x409f90
jmp 0x40a222
mov dword [esp + 0x20], edi
xor ecx, ecx
lea ecx, [ecx]
mov dl, byte [eax + ecx + 0xa0]
not dl
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x409fb0
jmp 0x40a222
movzx ecx, byte [eax]
or byte [esp + 0x7c], cl
movzx ecx, byte [eax + 1]
and cl, 0xf7
or byte [esp + 0x7d], cl
mov ecx, edx
lea ecx, [ecx]
mov dl, byte [eax + ecx]
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x409fe0
jmp 0x40a222
mov esi, eax
lea eax, [esp + 0x7c]
xor edx, edx
mov dword [esp + 0x20], edi
sub esi, eax
lea ecx, [esp + edx + 0x7c]
mov al, byte [ecx + esi]
not al
or byte [ecx], al
add edx, edi
cmp edx, 0x20
jl 0x40a001
or byte [esp + 0x7d], 8
jmp 0x40a222
or byte [esp + 0x7d], dl
or byte [esp + 0x80], 1
or byte [esp + 0x90], 1
cmp dword [esp + 0x30], 0
je 0x40a222
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x1680
mov dword [esp + 0x50], edi
call fcn.004212b0
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x180e
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x2000
call fcn.004212b0
add ebp, eax
push ebp
push 0x200a
call fcn.004212b0
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x202f
call fcn.004212b0
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x205f
call fcn.004212b0
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x3000
call fcn.004212b0
add esp, 0x38
jmp 0x40a220
xor eax, eax
mov ecx, eax
sub ecx, edi
mov edx, 0xff
je 0x40a0e3
sub ecx, 3
je 0x40a0dc
sub ecx, 0x10
jne 0x40a0e8
mov edx, 0xfe
jmp 0x40a0e8
mov edx, 0xfd
or byte [esp + eax + 0x7c], dl
add eax, edi
cmp eax, 0x20
jl 0x40a0c7
cmp dword [esp + 0x30], 0
je 0x40a222
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x100
mov dword [esp + 0x50], edi
call fcn.004212b0
add ebp, eax
push ebp
push 0x167f
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x1681
call fcn.004212b0
add ebp, eax
push ebp
push 0x180d
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x180f
call fcn.004212b0
add ebp, eax
push ebp
push 0x1fff
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x200b
call fcn.004212b0
add ebp, eax
push ebp
push 0x202e
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add esp, 0x40
add ebp, edi
push ebp
push 0x2030
call fcn.004212b0
add ebp, eax
push ebp
push 0x205e
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x2060
call fcn.004212b0
add ebp, eax
push ebp
push 0x2fff
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x3001
call fcn.004212b0
add ebp, eax
push ebp
push 0x10ffff
call fcn.004212b0
add esp, 0x30
jmp 0x40a220
or byte [esp + 0x7d], 0x3c
or byte [esp + 0x8c], 0x20
cmp dword [esp + 0x30], 0
je 0x40a222
mov byte [ebp], dl
add ebp, edi
push ebp
push 0x2028
mov dword [esp + 0x50], edi
call fcn.004212b0
add ebp, eax
push ebp
push 0x2029
call fcn.004212b0
add esp, 0x10
add ebp, eax
mov esi, dword [esp + 0x10]
inc esi
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test ebx, ebx
jne 0x40a254
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x40cf74
lea esi, [eax + 1]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test ebx, ebx
je 0x40cf74
cmp ebx, 0x5d
jne 0x409ae1
cmp dword [esp + 0x60], 0
jne 0x409ae1
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x40a278
or eax, 0xffffffff
mov dword [esp + 0x38], eax
cmp dword [esp + 0x48], 0
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x68], eax
mov dword [esp + 0x5c], ecx
je 0x40a96c
cmp dword [esp + 0x20], 0
je 0x40a2a4
test dword [esp + 0x2c], 0x20000000
je 0x40a96c
mov ecx, dword [esp + 0x14]
mov byte [ebp], 0
add ecx, 3
mov byte [ecx - 3], 0x6c
inc ebp
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], ecx
setne al
cmp dword [esp + 0x28], 0
mov byte [ecx], al
jle 0x40a93d
or al, 2
mov edi, ecx
mov byte [edi], al
inc edi
mov edx, ebp
sub edx, edi
push edx
lea eax, [edi + 0x20]
push edi
push eax
call sub.MSVCRT.dll_memmove
mov ecx, 8
lea esi, [esp + 0x88]
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebp + 0x20]
add esp, 0xc
mov dword [esp + 0x14], ecx
jmp 0x40a943
xor eax, eax
mov ecx, eax
sub ecx, edi
mov edx, 0xff
je 0x40a319
sub ecx, 0xf
jne 0x40a31e
mov edx, 0xdf
jmp 0x40a31e
mov edx, 0xc3
or byte [esp + eax + 0x7c], dl
add eax, edi
cmp eax, 0x20
jl 0x40a302
cmp dword [esp + 0x30], 0
je 0x40a222
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x100
mov dword [esp + 0x50], edi
call fcn.004212b0
add ebp, eax
push ebp
push 0x2027
call fcn.004212b0
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x202a
call fcn.004212b0
add ebp, eax
push ebp
push 0x10ffff
call fcn.004212b0
add esp, 0x20
jmp 0x40a220
mov ecx, dword [esp + 0x11c]
push ecx
lea edx, [esp + 0xe4]
push edx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xf0]
call fcn.00406e60
add esp, 0xc
test eax, eax
js 0x40d309
xor ecx, ecx
cmp esi, 0x10
sete cl
mov dword [esp + 0x48], edi
cmp ecx, dword [esp + 0xe4]
sete dl
add dl, 3
mov byte [ebp], dl
add ebp, edi
mov byte [ebp], al
mov al, byte [esp + 0xe0]
add ebp, edi
mov byte [ebp], al
add ebp, edi
sub dword [esp + 0x28], edi
jmp 0x40a222
test byte [esp + 0x2c], 0x40
mov esi, dword [esp + 0x10]
jne 0x40cf2e
sub dword [esp + 0x28], edi
sub dword [esp + 0x3c], edx
movzx ebx, byte [esi]
jmp 0x409e3e
cmp byte [esi], 0x5c
jne 0x40a434
cmp byte [esi + 1], 0x51
jne 0x40a434
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x40a42c
cmp byte [esi + 1], 0x45
jne 0x40a42c
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x40a406
jmp 0x40a434
mov dword [esp + 0x60], 1
mov al, byte [esi]
test al, al
je 0x40a783
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x40a44e
cmp al, 0x5d
je 0x40a783
cmp dword [esp + 0x30], 0
je 0x40a556
movzx eax, al
mov dword [esp + 0x18], eax
cmp eax, 0xc0
jl 0x40a55d
movzx edx, byte [esi + 1]
and edx, 0x3f
test al, 0x20
jne 0x40a488
and eax, 0x1f
shl eax, 6
or edx, eax
inc esi
mov dword [esp + 0x10], esi
jmp 0x40a559
test al, 0x10
jne 0x40a4ac
and eax, 0xf
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 2
mov dword [esp + 0x10], esi
jmp 0x40a559
test al, 8
jne 0x40a4dc
and eax, 7
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 3
mov dword [esp + 0x10], esi
jmp 0x40a559
test al, 4
jne 0x40a515
and eax, 3
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 4
mov dword [esp + 0x10], esi
jmp 0x40a559
and eax, 1
shl eax, 6
or edx, eax
movzx eax, byte [esi + 2]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 3]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 4]
shl edx, 6
and eax, 0x3f
or edx, eax
movzx eax, byte [esi + 5]
shl edx, 6
and eax, 0x3f
or edx, eax
add esi, 5
mov dword [esp + 0x10], esi
jmp 0x40a559
movzx edx, al
mov dword [esp + 0x18], edx
test ecx, ecx
jne 0x40a5b8
cmp dword [esp + 0x18], 0x5c
jne 0x40a5b8
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx + 0x38]
mov esi, dword [esp + 0x11c]
push eax
push edx
lea eax, [esp + 0x18]
push esi
push eax
mov eax, 1
call fcn.004067b0
add esp, 0x10
cmp dword [esi], 0
mov dword [esp + 0x18], eax
jne 0x40d309
test eax, eax
jns 0x40a5b4
cmp eax, 0xfffffffb
jne 0x40a783
mov dword [esp + 0x18], 8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp eax, ebx
jl 0x40cf51
je 0x40a789
cmp eax, 0xd
je 0x40a5d4
cmp eax, 0xa
jne 0x40a5e2
mov ecx, dword [esp + 0x130]
or dword [ecx + 0x50], 0x800
cmp dword [esp + 0x30], 0
mov dword [esp + 0x3c], 2
je 0x40a701
cmp eax, 0xff
jg 0x40a610
test byte [esp + 0x2c], 1
je 0x40a701
cmp eax, 0x7f
jle 0x40a701
test byte [esp + 0x2c], 1
mov dword [esp + 0x48], 1
je 0x40a6e8
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xbc]
push ecx
lea eax, [esp + 0xd4]
push eax
lea esi, [esp + 0x64]
mov dword [esp + 0x64], ebx
mov edi, edx
call fcn.004084a0
add esp, 8
test eax, eax
je 0x40a6e8
jmp 0x40a660
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0xbc]
cmp eax, ebx
jb 0x40a67c
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jbe 0x40a6c2
jmp 0x40a68f
lea ecx, [ebx - 1]
cmp esi, ecx
jb 0x40a687
mov ebx, eax
jmp 0x40a6c2
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jbe 0x40a69a
inc ecx
cmp eax, ecx
ja 0x40a69a
mov dword [esp + 0x18], esi
jmp 0x40a6c2
cmp eax, esi
jne 0x40a6a5
mov byte [ebp], 1
inc ebp
jmp 0x40a6b6
mov byte [ebp], 2
inc ebp
push ebp
push eax
call fcn.004212b0
add esp, 8
add ebp, eax
push ebp
push esi
call fcn.004212b0
add esp, 8
add ebp, eax
lea edx, [esp + 0xbc]
push edx
lea eax, [esp + 0xd4]
push eax
mov edx, edi
lea esi, [esp + 0x64]
call fcn.004084a0
add esp, 8
test eax, eax
jne 0x40a660
mov byte [ebp], 2
inc ebp
push ebp
push ebx
call fcn.004212b0
mov ecx, dword [esp + 0x20]
add ebp, eax
push ebp
push ecx
jmp 0x40a218
cmp dword [esp + 0x134], 0
mov dword [esp + 0x28], 1
jne 0x40a226
cmp ebx, dword [esp + 0x18]
jg 0x40a226
mov eax, dword [esp + 0x2c]
and eax, 1
mov dword [esp + 0x44], eax
lea esp, [esp]
mov eax, ebx
cdq
and edx, 7
add eax, edx
mov ecx, ebx
and ecx, 7
mov dl, 1
shl dl, cl
sar eax, 3
lea edi, [esp + eax + 0x7c]
or byte [edi], dl
cmp dword [esp + 0x44], 0
je 0x40a777
mov eax, dword [esp + 0x130]
mov ecx, dword [eax + 4]
movzx ecx, byte [ecx + ebx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea edi, [esp + eax + 0x7c]
or byte [edi], dl
inc ebx
cmp ebx, dword [esp + 0x18]
jle 0x40a730
jmp 0x40a226
mov esi, edi
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x3c]
cmp eax, 2
jge 0x40a797
inc eax
mov dword [esp + 0x3c], eax
cmp eax, 1
jne 0x40a81a
cmp byte [esi + 1], 0x5d
jne 0x40a81a
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40a7bd
cmp dword [esp + 0x1c], 0
je 0x40a7bd
cmp ebx, 0x80
jge 0x40a81e
mov ecx, dword [esp + 0x50]
inc esi
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x5c], ecx
je 0x40a90d
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x40a7e5
or eax, 0xffffffff
mov dword [esp + 0x38], eax
test byte [esp + 0x2c], 1
mov ebp, dword [esp + 0x24]
setne dl
add dl, 0x1f
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x14]
mov byte [eax], dl
mov edx, dword [esp + 0x6c]
mov byte [eax + 1], bl
mov esi, dword [esp + 0x10]
add eax, 2
inc esi
mov dword [esp + 0x14], eax
mov edi, eax
xor ecx, ecx
jmp 0x409465
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40a8b5
cmp ebx, 0xff
jg 0x40a83e
test byte [esp + 0x2c], 1
je 0x40a8b5
cmp ebx, 0x7f
jle 0x40a8b5
mov byte [ebp], 1
inc ebp
push ebp
push ebx
mov dword [esp + 0x50], 1
call fcn.004212b0
add esp, 8
add ebp, eax
test byte [esp + 0x2c], 1
je 0x40a222
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x43d9c0]
mov ecx, ebx
shl eax, 7
and ecx, 0x8000007f
jns 0x40a886
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x43fbc0]
mov eax, dword [edx*8 + 0x43c8e4]
add eax, ebx
cmp eax, ebx
je 0x40a222
mov byte [ebp], 1
inc ebp
push ebp
push eax
call fcn.004212b0
add esp, 8
jmp 0x40a220
mov eax, ebx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea edi, [esp + eax + 0x7c]
mov ecx, ebx
and ecx, 7
mov al, 1
shl al, cl
mov dword [esp + 0x28], 1
or byte [edi], al
test byte [esp + 0x2c], 1
je 0x40a226
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx + 4]
movzx ecx, byte [edx + ebx]
mov eax, ecx
cdq
and edx, 7
add eax, edx
and ecx, 7
mov dl, 1
sar eax, 3
shl dl, cl
lea eax, [esp + eax + 0x7c]
or byte [eax], dl
jmp 0x40a226
test eax, eax
je 0x40a92c
cmp ebx, 0x7f
jle 0x40a92c
lea eax, [esp + 0xc0]
push eax
push ebx
call fcn.004212b0
add esp, 8
jmp 0x40965e
mov byte [esp + 0xc0], bl
mov eax, 1
jmp 0x40965e
mov dword [esp + 0x14], ebp
mov ecx, ebp
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, ecx
sub edx, eax
sar edx, 8
sub cl, al
mov byte [eax + 1], dl
mov edx, dword [esp + 0x6c]
mov byte [eax + 2], cl
mov esi, dword [esp + 0x10]
inc esi
mov ebp, eax
xor ecx, ecx
jmp 0x409465
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
setne dl
add dl, 0x6a
mov byte [ecx], dl
inc ecx
cmp dword [esp + 0x134], 0
mov dword [esp + 0x14], ecx
jne 0x40a9b4
test eax, eax
je 0x40a9a5
xor eax, eax
mov cl, byte [esp + eax + 0x7c]
not cl
mov byte [esp + eax + 0x7c], cl
inc eax
cmp eax, 0x20
jl 0x40a995
mov edi, dword [esp + 0x14]
mov ecx, 8
lea esi, [esp + 0x7c]
rep movsd dword es:[edi], dword [esi]
add dword [esp + 0x14], 0x20
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
test edi, edi
je case.0x40982b.1
mov edi, dword [esp + 0x11c]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x58]
push eax
lea eax, [esi + 1]
call fcn.00406f80
add esp, 8
cmp dword [edi], 0
mov esi, eax
mov dword [esp + 0x10], esi
jne 0x40d30d
mov eax, dword [esp + 0x54]
jmp 0x40aa31
mov dword [esp + 0x34], 0xffffffff
jmp 0x40aa2b
mov eax, 1
mov dword [esp + 0x34], 0xffffffff
jmp 0x40aa2d
mov dword [esp + 0x34], 1
xor eax, eax
mov dword [esp + 0x54], eax
xor ecx, ecx
cmp ebp, ecx
je 0x40cf97
cmp eax, ecx
jne 0x40aa4f
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], edx
sub eax, dword [esp + 0x34]
mov edx, ebp
neg eax
sbb eax, eax
and eax, 0x20000000
mov dword [esp + 0xa8], eax
mov dword [esp + 0x40], edx
mov al, byte [esi + 1]
mov dword [esp + 0x28], ecx
cmp al, 0x2b
jne 0x40aa83
inc esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], esi
jmp 0x40aaa0
cmp al, 0x3f
jne 0x40aa99
mov eax, dword [esp + 0xcc]
inc esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], esi
jmp 0x40aaa4
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
cmp byte [ebp], 0x6f
jne 0x40ab34
push 3
lea edx, [ebp + 3]
push ebp
push edx
call sub.MSVCRT.dll_memmove
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x13c]
add ebx, 6
add esp, 0xc
cmp dword [esp + 0x134], 0
mov word [ebp], 0x7b
mov byte [ebp + 2], 6
mov word [ebp + 6], 0x72
mov byte [ebp + 8], 6
mov dword [esp + 0x14], ebx
mov dword [esp + 0x70], 9
jne 0x40ab2a
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x24]
add eax, 2
cmp esi, eax
jb 0x40ab2a
movzx ecx, byte [esi - 2]
movzx eax, byte [esi - 1]
mov edx, ebp
sub edx, dword [edi + 0x14]
shl ecx, 8
or eax, ecx
inc edx
cmp eax, edx
jne 0x40ab2a
lea ecx, [eax + 3]
sar ecx, 8
mov byte [esi - 2], cl
mov edx, dword [edi + 0x24]
add al, 3
mov byte [edx - 1], al
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
jmp 0x40ab3f
mov edi, dword [esp + 0x130]
mov ebx, dword [esp + 0x14]
mov cl, byte [ebp]
cmp cl, 0x1d
je 0x40b32a
cmp cl, 0x1e
je 0x40b32a
cmp cl, 0x1f
je 0x40b2fb
cmp cl, 0x20
je 0x40b2fb
cmp cl, 0x17
jae 0x40abef
movzx ecx, cl
mov eax, 0x34
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
cmp dword [esp + 0x28], 0
mov edx, dword [esp + 0x34]
jne 0x40abc5
test edx, edx
jns 0x40abc5
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
push edx
inc esi
push esi
push eax
push ebp
mov eax, edi
call fcn.004086e0
mov esi, dword [esp + 0x20]
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x20]
je 0x40abc1
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 1
mov edx, dword [esp + 0x34]
mov cl, byte [ebp]
cmp cl, 0x10
je 0x40b3b5
cmp cl, 0xf
je 0x40b3b5
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
jmp 0x40b3c5
cmp cl, 0x6a
je 0x40b247
cmp cl, 0x6b
je 0x40b247
cmp cl, 0x6c
je 0x40b247
cmp cl, 0x6d
je 0x40b247
cmp cl, 0x6e
je 0x40b247
cmp cl, 0x77
jb 0x40b21b
cmp cl, 0x81
ja 0x40b21b
mov eax, ebx
sub eax, ebp
mov dword [esp + 0x48], eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x44], eax
cmp cl, 0x81
jne 0x40ac4f
cmp byte [ebp + 3], 0x8b
je 0x40b7a7
mov eax, dword [esp + 0x54]
cmp cl, 0x7b
jae 0x40ac78
test eax, eax
jg 0x40b7a7
mov ecx, dword [esp + 0x34]
test ecx, ecx
js 0x40ac6d
cmp ecx, 1
jle 0x40ac7c
mov ecx, 1
mov dword [esp + 0x34], ecx
jmp 0x40ac7c
mov ecx, dword [esp + 0x34]
test eax, eax
jne 0x40ad4f
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
push ebp
mov byte [ebx], al
push edi
cmp ecx, 1
jg 0x40acf8
mov ecx, dword [esp + 0x38]
push ecx
push 1
push esi
call fcn.00408290
mov edx, dword [esp + 0x5c]
push edx
lea eax, [esi + 1]
push esi
push eax
mov dword [esp + 0x6c], eax
call sub.MSVCRT.dll_memmove
inc ebx
add esp, 0x20
cmp dword [esp + 0x34], 0
mov dword [esp + 0x14], ebx
jne 0x40acce
mov eax, esi
mov byte [eax], 0x9b
jmp 0x40b7a3
mov cl, byte [esp + 0x18]
mov edx, dword [esp + 0x4c]
sub cl, 0x74
dec dword [esp + 0x34]
mov byte [esi], cl
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x40]
jmp 0x40adc4
mov eax, dword [esp + 0x38]
push eax
push 4
push esi
call fcn.00408290
mov ecx, dword [esp + 0x5c]
push ecx
lea edx, [esi + 4]
push esi
push edx
call sub.MSVCRT.dll_memmove
mov al, byte [esp + 0x38]
sub al, 0x74
mov byte [esi], al
mov byte [esi + 1], 0x7d
add esi, 2
mov word [esi], 0
mov edx, dword [esp + 0x60]
mov dword [esp + 0x5c], esi
add esi, 2
add ebx, 4
add esp, 0x20
dec dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x24], esi
mov esi, dword [esp + 0x10]
mov dword [esp + 0x14], ebx
jmp 0x40adc4
cmp eax, 1
jle 0x40adb6
cmp dword [esp + 0x134], 0
je 0x40ae4b
dec eax
mov dword [esp + 0x4c], eax
imul eax, dword [esp + 0x70]
fild dword [esp + 0x4c]
fimul dword [esp + 0x70]
mov dword [esp + 0x1c], eax
fcomp qword [0x43bf88]
fnstsw ax
test ah, 0x41
je 0x40cfba
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov ebp, 0x7fffffeb
sub ebp, eax
cmp ebp, dword [esp + 0x1c]
jl 0x40cfba
mov ebp, dword [esp + 0x1c]
add ebp, eax
mov eax, dword [esp + 0x134]
mov dword [eax], ebp
mov eax, dword [esp + 0x54]
mov ebp, dword [esp + 0x58]
test ecx, ecx
jle 0x40adc6
sub ecx, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
js 0x40b0e0
cmp dword [esp + 0x134], 0
je 0x40af61
test ecx, ecx
jle 0x40af61
mov eax, dword [esp + 0x70]
add eax, 7
mov dword [esp + 0x4c], eax
imul eax, ecx
fild dword [esp + 0x4c]
fimul dword [esp + 0x34]
sub eax, 6
mov dword [esp + 0x44], eax
fcomp qword [0x43bf88]
fnstsw ax
test ah, 0x41
je 0x40ce05
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov ecx, 0x7fffffeb
sub ecx, eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x44]
cmp dword [esp + 0x4c], ecx
jl 0x40ce05
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
add ecx, eax
mov eax, dword [esp + 0x134]
mov dword [eax], ecx
jmp 0x40b08a
cmp dword [esp + 0xb0], 0
je 0x40ae64
cmp dword [esp + 0x50], 0
jge 0x40ae64
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x20], 1
cmp eax, 1
jle 0x40adb6
mov ebp, dword [esp + 0x58]
lea esp, [esp]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x24]
mov esi, dword [edi + 0x24]
push ecx
push edx
push ebx
call sub.MSVCRT.dll_memcpy
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x10]
sub ecx, esi
add ecx, eax
lea edx, [ecx + ebp - 0x64]
add esp, 0xc
cmp dword [edi + 0x24], edx
jbe 0x40aef2
lea esp, [esp]
sub esi, eax
mov dword [esp + 0x4c], esi
mov esi, edi
sub ebp, eax
call fcn.004066c0
mov ecx, dword [esp + 0x11c]
mov dword [ecx], eax
test eax, eax
jne 0x40d309
mov edi, dword [esp + 0x130]
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x4c]
mov ecx, dword [edi + 0x34]
add esi, eax
sub ecx, esi
add ebp, eax
add ecx, eax
lea edx, [ecx + ebp - 0x64]
cmp dword [edi + 0x24], edx
ja 0x40aeb0
mov eax, dword [esp + 0x48]
cmp ebp, esi
jae 0x40af2d
lea ebx, [ebx]
movzx ecx, byte [ebp]
movzx edx, byte [ebp + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [edi + 0x24]
add ecx, eax
sar ecx, 8
mov byte [edx], cl
mov cl, byte [ebp + 1]
mov edx, dword [edi + 0x24]
add cl, al
mov byte [edx + 1], cl
add dword [edi + 0x24], 2
add ebp, 2
cmp ebp, esi
jb 0x40af00
add ebx, eax
mov eax, dword [esp + 0x20]
inc eax
mov ebp, esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x54]
jl 0x40ae80
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
jmp 0x40adba
dec ecx
mov dword [esp + 0x20], ecx
js 0x40b08a
mov al, byte [esp + 0x18]
sub al, 0x74
mov byte [esp + 0x76], al
mov cl, byte [esp + 0x76]
mov esi, dword [edi + 0x24]
mov byte [ebx], cl
inc ebx
cmp dword [esp + 0x20], 0
je 0x40afac
mov ecx, dword [esp + 0x3c]
mov byte [ebx], 0x7d
inc ebx
test ecx, ecx
jne 0x40af97
xor eax, eax
jmp 0x40af9b
mov eax, ebx
sub eax, ecx
mov edx, eax
sar edx, 8
mov dword [esp + 0x3c], ebx
mov byte [ebx], dl
mov byte [ebx + 1], al
add ebx, 2
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push ebx
call sub.MSVCRT.dll_memcpy
mov edx, dword [edi + 0x34]
mov eax, dword [edi + 0x10]
sub edx, esi
add edx, eax
lea ecx, [edx + ebp - 0x64]
add esp, 0xc
cmp dword [edi + 0x24], ecx
jbe 0x40b014
sub esi, eax
mov dword [esp + 0x4c], esi
mov esi, edi
sub ebp, eax
call fcn.004066c0
mov edx, dword [esp + 0x11c]
mov dword [edx], eax
test eax, eax
jne 0x40d309
mov edi, dword [esp + 0x130]
mov eax, dword [edi + 0x10]
mov esi, dword [esp + 0x4c]
mov edx, dword [edi + 0x34]
add esi, eax
sub edx, esi
add ebp, eax
add edx, eax
lea ecx, [edx + ebp - 0x64]
cmp dword [edi + 0x24], ecx
ja 0x40afd2
cmp ebp, esi
jae 0x40b06a
mov ecx, dword [esp + 0x20]
mov eax, ecx
neg eax
sbb eax, eax
and eax, 3
inc eax
neg ecx
sbb cl, cl
and cl, 3
inc cl
mov byte [esp + 0x77], cl
movzx edx, byte [ebp]
movzx ecx, byte [ebp + 1]
shl edx, 8
or edx, ecx
add edx, dword [esp + 0x48]
mov ecx, dword [edi + 0x24]
add edx, eax
sar edx, 8
mov byte [ecx], dl
mov dl, byte [ebp + 1]
add dl, byte [esp + 0x48]
mov ecx, dword [edi + 0x24]
add dl, byte [esp + 0x77]
add ebp, 2
mov byte [ecx + 1], dl
add dword [edi + 0x24], 2
cmp ebp, esi
jb 0x40b033
add ebx, dword [esp + 0x48]
dec dword [esp + 0x20]
mov ebp, esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x14], ebx
jns 0x40af76
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x3c], 0
je 0x40b606
mov eax, ebx
sub eax, dword [esp + 0x3c]
mov esi, ebx
inc eax
sub esi, eax
movzx ecx, byte [esi + 1]
movzx edx, byte [esi + 2]
shl ecx, 8
or ecx, edx
jne 0x40b0b5
mov dword [esp + 0x3c], ecx
jmp 0x40b0b9
sub dword [esp + 0x3c], ecx
mov byte [ebx], 0x72
mov ecx, eax
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
add ebx, 3
cmp dword [esp + 0x3c], 0
mov byte [esi + 1], cl
mov byte [esi + 2], al
jne 0x40b095
mov dword [esp + 0x14], ebx
jmp 0x40b5fe
movzx ecx, byte [ebx - 2]
movzx edx, byte [ebx - 1]
lea eax, [ebx - 3]
shl ecx, 8
or ecx, edx
mov esi, eax
sub esi, ecx
mov cl, byte [esi]
mov dword [esp + 0x20], eax
cmp cl, 0x7b
je 0x40b104
cmp cl, 0x7c
jne 0x40b110
cmp dword [esp + 0x28], 0
je 0x40b110
mov byte [esi], 0x7d
jmp 0x40b122
cmp cl, 0x7b
je 0x40b20d
cmp cl, 0x7c
je 0x40b20d
cmp dword [esp + 0x134], 0
jne 0x40b16d
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
push edi
push eax
push ecx
push edx
call fcn.00407ba0
add esp, 0x10
test eax, eax
jne 0x40b16a
mov eax, dword [esp + 0x1c]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
add eax, ecx
cmp byte [eax], 0x71
mov dword [esp + 0x1c], eax
je 0x40b130
jmp 0x40b16d
add byte [esi], 5
cmp dword [esp + 0x28], 0
je 0x40b1fc
mov al, byte [esi]
cmp al, 0x81
je 0x40b18f
cmp al, 0x86
je 0x40b18f
inc al
mov byte [esi], al
mov eax, dword [esp + 0x20]
mov byte [eax], 0x75
jmp 0x40b1e1
mov ecx, dword [esp + 0x30]
push ebp
push edi
push ecx
mov eax, ebx
sub eax, esi
push 3
push esi
mov dword [esp + 0x30], eax
mov byte [ebx], 0
call fcn.00408290
mov edx, dword [esp + 0x30]
push edx
lea eax, [esi + 3]
push esi
push eax
call sub.MSVCRT.dll_memmove
mov ecx, dword [esp + 0x3c]
add ecx, 3
mov byte [esi], 0x7e
mov byte [ebx + 3], 0x75
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
add esp, 0x20
add ebx, 6
mov dword [esp + 0x14], ebx
mov byte [esi + 1], al
mov byte [esi + 2], cl
mov eax, dword [esp + 0x44]
test eax, eax
je 0x40b1ec
mov byte [eax], 0x8e
cmp dword [esp + 0x54], 2
jl 0x40b7a3
jmp 0x40b5fe
mov al, byte [esp + 0x18]
mov ecx, dword [esp + 0x20]
add al, 0x73
mov byte [ecx], al
jmp 0x40b7a3
mov cl, byte [esp + 0x18]
add cl, 0x73
mov byte [eax], cl
jmp 0x40b5fe
cmp cl, 0x97
je 0x40b7a7
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0xb
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x34]
test eax, eax
jne 0x40b273
mov ecx, dword [esp + 0xa8]
or dword [edi + 0x54], ecx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x14], ebp
mov edi, dword [esp + 0x14]
inc esi
mov dword [esp + 0x24], eax
mov ebp, eax
xor ecx, ecx
jmp 0x409465
mov edx, dword [esp + 0x54]
test edx, edx
jne 0x40b292
cmp eax, 0xffffffff
jne 0x40b2ae
mov al, byte [esp + 0x18]
add al, 0x62
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x40b5fa
cmp edx, 1
jne 0x40b2c5
cmp eax, 0xffffffff
jne 0x40b2c5
mov al, byte [esp + 0x18]
add al, 0x64
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x40b5fa
cmp eax, 1
jne 0x40b2c5
mov al, byte [esp + 0x18]
add al, 0x66
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x40b5fa
mov cl, byte [esp + 0x18]
add cl, 0x68
mov byte [ebx], cl
mov ecx, edx
sar ecx, 8
mov byte [ebx + 1], cl
mov byte [ebx + 2], dl
cmp eax, 0xffffffff
jne 0x40b2e4
xor eax, eax
mov dword [esp + 0x34], eax
mov edx, eax
sar edx, 8
mov byte [ebx + 3], dl
mov byte [ebx + 4], al
add ebx, 5
mov dword [esp + 0x14], ebx
jmp 0x40b5fa
xor eax, eax
cmp cl, 0x1f
movzx ecx, byte [ebp + 1]
setne al
mov dword [esp + 0x24], ecx
dec eax
and eax, 0xfffffff3
add eax, 0x27
cmp dword [esp + 0x28], 0
mov dword [esp + 0x20], eax
jne 0x40abc1
mov edx, dword [esp + 0x34]
jmp 0x40ab8a
xor eax, eax
cmp cl, 0x1d
sete al
dec eax
and eax, 0xd
cmp dword [esp + 0x30], 0
mov dword [esp + 0x20], eax
je 0x40b38e
mov dl, byte [ebx - 1]
lea ecx, [ebx - 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x40b38e
mov al, byte [ecx]
and al, 0xc0
cmp al, dl
jne 0x40b363
mov dl, byte [ecx - 1]
dec ecx
and dl, 0xc0
cmp dl, 0x80
je 0x40b357
mov eax, ebx
sub eax, ecx
push eax
mov dword [esp + 0x28], eax
push ecx
lea eax, [esp + 0xdc]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [esp + 0x2c]
add esp, 0xc
or dword [esp + 0x24], 0x10000000
jmp 0x40ab7f
cmp dword [esp + 0x54], 1
movzx ecx, byte [ebx - 1]
mov dword [esp + 0x24], ecx
jle 0x40ab7f
mov ecx, dword [edi + 0x54]
or ecx, dword [esp + 0x24]
or ecx, dword [esp + 0x78]
mov dword [esp + 0x50], ecx
jmp 0x40ab7f
movzx ecx, byte [ebp + 1]
mov dword [esp + 0x1c], ecx
movzx ecx, byte [ebp + 2]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x14], ebp
test edx, edx
je 0x40b7a7
mov ecx, dword [esp + 0x18]
add ecx, eax
cmp dword [esp + 0x54], 0
mov dword [esp + 0x18], ecx
jne 0x40b42d
cmp edx, 0xffffffff
jne 0x40b3fb
add cl, 0x21
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x40b59a
cmp edx, 1
jne 0x40b410
add cl, 0x25
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x40b59a
add cl, 0x27
mov eax, edx
mov byte [ebp], cl
sar eax, 8
mov byte [ebp + 1], al
mov byte [ebp + 2], dl
add ebp, 3
mov dword [esp + 0x14], ebp
jmp 0x40b59a
cmp dword [esp + 0x54], 1
jne 0x40b479
cmp edx, 0xffffffff
jne 0x40b449
add cl, 0x23
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x40b59a
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
cmp edx, 1
je 0x40b7a7
add cl, 0x27
mov byte [eax], cl
lea ecx, [edx - 1]
sar ecx, 8
dec dl
mov byte [eax + 1], cl
mov byte [eax + 2], dl
add eax, 3
mov dword [esp + 0x14], eax
jmp 0x40b59a
add al, 0x29
mov byte [ebp], al
mov eax, dword [esp + 0x54]
mov ebx, eax
sar ebx, 8
mov byte [ebp + 1], bl
mov byte [ebp + 2], al
add ebp, 3
mov dword [esp + 0x14], ebp
test edx, edx
jns 0x40b509
cmp dword [esp + 0x30], 0
je 0x40b4dc
test dword [esp + 0x24], 0x10000000
je 0x40b4dc
mov esi, dword [esp + 0x24]
and esi, 7
push esi
lea edx, [esp + 0xd8]
push edx
push ebp
call sub.MSVCRT.dll_memcpy
mov ecx, dword [esp + 0x24]
add ebp, esi
add cl, 0x21
add esp, 0xc
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x40b59a
mov al, byte [esp + 0x24]
mov byte [ebp], al
mov eax, dword [esp + 0x1c]
inc ebp
test eax, eax
js 0x40b4f9
mov dl, byte [esp + 0x20]
mov byte [ebp], al
mov byte [ebp + 1], dl
add ebp, 2
add cl, 0x21
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x40b59a
cmp edx, eax
je 0x40b59a
cmp dword [esp + 0x30], 0
je 0x40b543
test dword [esp + 0x24], 0x10000000
je 0x40b543
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
and ebx, 7
push ebx
lea eax, [esp + 0xd8]
push eax
push esi
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add esi, ebx
jmp 0x40b554
mov eax, dword [esp + 0x14]
mov cl, byte [esp + 0x24]
mov byte [eax], cl
inc eax
mov dword [esp + 0x14], eax
mov esi, eax
mov eax, dword [esp + 0x1c]
test eax, eax
js 0x40b568
mov dl, byte [esp + 0x20]
mov byte [esi], al
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x54]
mov al, byte [esp + 0x18]
mov dword [esp + 0x34], ecx
cmp ecx, 1
jne 0x40b584
add al, 0x25
mov byte [esi], al
inc esi
jmp 0x40b596
add al, 0x27
mov byte [esi], al
mov eax, ecx
sar eax, 8
mov byte [esi + 1], al
mov byte [esi + 2], cl
add esi, 3
mov dword [esp + 0x14], esi
cmp dword [esp + 0x30], 0
je 0x40b5cc
test dword [esp + 0x24], 0x10000000
je 0x40b5cc
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
and esi, 7
push esi
lea ecx, [esp + 0xd8]
push ecx
push ebx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add ebx, esi
jmp 0x40b5d7
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x24]
mov byte [ebx], dl
inc ebx
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x14], ebx
jl 0x40b5f6
mov al, byte [esp + 0x1c]
mov cl, byte [esp + 0x20]
mov byte [ebx], al
mov byte [ebx + 1], cl
add ebx, 2
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x28], 0
je 0x40b7a7
mov al, byte [edx]
cmp al, 0x5d
jne 0x40b63f
mov al, byte [edx + 3]
cmp al, 0x10
je 0x40b62f
cmp al, 0xf
je 0x40b62f
movzx ecx, byte [0x43c095]
xor eax, eax
add ecx, eax
jmp 0x40b672
movzx ecx, byte [0x43c095]
mov eax, 2
add ecx, eax
jmp 0x40b672
cmp al, 0x29
je 0x40b647
cmp al, 0x43
jne 0x40b678
movzx eax, al
movzx ecx, byte [eax + 0x43c038]
add edx, ecx
cmp dword [esp + 0x30], 0
mov dword [esp + 0x40], edx
je 0x40b678
mov al, byte [edx - 1]
cmp al, 0xc0
jb 0x40b678
movzx eax, al
and eax, 0x3f
movzx ecx, byte [eax + 0x43c120]
add edx, ecx
mov dword [esp + 0x40], edx
mov eax, ebx
sub eax, edx
mov dword [esp + 0x44], eax
test eax, eax
jle 0x40b7a7
movzx eax, byte [edx]
add eax, 0xffffffdf
cmp eax, 0x3a
ja case.0x40b69e.34
movzx eax, byte [eax + 0x40d480]
jmp dword [eax*4 + 0x40d42c]
mov byte [edx], 0x2a
jmp 0x40b7a3
mov byte [edx], 0x2b
jmp 0x40b7a3
mov byte [edx], 0x2c
jmp 0x40b7a3
mov byte [edx], 0x2d
jmp 0x40b7a3
mov byte [edx], 0x37
jmp 0x40b7a3
mov byte [edx], 0x38
jmp 0x40b7a3
mov byte [edx], 0x39
jmp 0x40b7a3
mov byte [edx], 0x3a
jmp 0x40b7a3
mov byte [edx], 0x44
jmp 0x40b7a3
mov byte [edx], 0x45
jmp 0x40b7a3
mov byte [edx], 0x46
jmp 0x40b7a3
mov byte [edx], 0x47
jmp 0x40b7a3
mov byte [edx], 0x51
jmp 0x40b7a3
mov byte [edx], 0x52
jmp 0x40b7a3
mov byte [edx], 0x53
jmp 0x40b7a3
mov byte [edx], 0x54
jmp 0x40b7a3
mov byte [edx], 0x5e
jmp 0x40b7a3
mov byte [edx], 0x5f
jmp 0x40b7a3
mov byte [edx], 0x60
jmp 0x40b7a3
mov byte [edx], 0x61
jmp 0x40b7a3
mov ecx, dword [esp + 0x30]
push ebp
push edi
push ecx
mov byte [ebx], 0
mov edx, dword [esp + 0x4c]
push 3
push edx
call fcn.00408290
mov eax, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x58]
push eax
add eax, 3
push eax
call sub.MSVCRT.dll_memmove
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
add ecx, 3
mov byte [edx], 0x7b
mov byte [ebx + 3], 0x72
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
mov edx, dword [esp + 0x60]
mov byte [edx + 1], al
mov eax, dword [esp + 0x60]
add esp, 0x20
add ebx, 6
mov dword [esp + 0x14], ebx
mov byte [eax + 2], cl
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0xa8]
or dword [edi + 0x54], ecx
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
inc esi
xor ecx, ecx
jmp 0x409465
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x130]
xor eax, eax
inc esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov dword [esp + 0x4c], edx
mov edx, dword [ecx + 0x24]
mov dword [esp + 0x28], 0x7f
mov dword [esp + 0x58], edx
cmp al, 0x2a
jne 0x40ba0a
mov cl, byte [esi + 1]
mov edi, dword [esp + 0x130]
lea edx, [esi + 1]
mov dword [esp + 0x44], edx
cmp cl, 0x3a
je 0x40b82a
mov ebx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + ebx], 2
je 0x40ba0c
mov eax, dword [edi + 0xc]
mov esi, edx
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
xor ebx, ebx
test byte [edx + eax], 2
mov ebp, 0x43b110
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
je 0x40b85e
jmp 0x40b850
inc esi
mov dword [esp + 0x10], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 2
jne 0x40b850
mov edi, esi
sub edi, dword [esp + 0x44]
cmp byte [esi], 0x3a
jne 0x40b893
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov ecx, esi
mov dword [esp + 0x20], ecx
test al, al
je 0x40b88f
lea ebx, [ebx]
cmp al, 0x29
je 0x40b88f
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x40b880
mov ebx, esi
sub ebx, ecx
cmp byte [esi], 0x29
jne 0x40cfdd
mov dword [esp + 0x1c], 0
mov esi, 0x43b140
lea esp, [esp]
cmp edi, dword [esi]
jne 0x40b8c7
mov edx, dword [esp + 0x44]
push edi
push ebp
push edx
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
je 0x40b8ee
mov eax, dword [esi]
inc dword [esp + 0x1c]
add esi, 0xc
lea ebp, [eax + ebp + 1]
cmp esi, 0x43b1ac
jl 0x40b8b0
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x3c
jmp 0x40d309
mov edi, dword [esp + 0x1c]
lea eax, [edi + edi*2]
add eax, eax
mov ecx, dword [eax + eax + 0x43b144]
add eax, eax
cmp ecx, 0x98
jne 0x40b972
test ebx, ebx
jne 0x40d000
mov esi, dword [esp + 0x130]
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x58], 1
test eax, eax
je 0x40b94a
lea esp, [esp]
mov byte [ecx], 0x9a
movzx edx, byte [eax + 5]
mov byte [ecx + 1], dl
movzx edx, byte [eax + 4]
mov byte [ecx + 2], dl
mov eax, dword [eax]
add ecx, 3
test eax, eax
jne 0x40b930
cmp dword [esi + 0x48], 0
setg al
add al, 0x98
mov byte [ecx], al
inc ecx
cmp dword [esp + 0x38], 0xfffffffe
mov dword [esp + 0x14], ecx
jne 0x40b9e9
mov dword [esp + 0x38], 0xffffffff
jmp 0x40b9e9
test ebx, ebx
jne 0x40b99f
test ecx, ecx
js 0x40d012
mov al, cl
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
cmp al, 0x94
jne 0x40b9e9
mov eax, dword [esp + 0x130]
or dword [eax + 0x50], 0x1000
jmp 0x40b9e9
cmp dword [eax + 0x43b148], 0
jl 0x40d024
mov al, byte [eax + 0x43b148]
mov esi, dword [esp + 0x14]
mov byte [esi], al
cmp al, 0x95
jne 0x40b9ca
mov eax, dword [esp + 0x130]
or dword [eax + 0x50], 0x1000
mov ecx, dword [esp + 0x20]
push ebx
mov byte [esi + 1], bl
push ecx
add esi, 2
push esi
call sub.MSVCRT.dll_memcpy
add esi, ebx
add esp, 0xc
mov byte [esi], 0
inc esi
mov dword [esp + 0x14], esi
cmp edi, 9
jge 0x40b8dc
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
mov edi, ecx
cmp al, 0x3f
jne 0x40c228
mov ebp, 1
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx ecx, al
add ecx, 0xffffffdf
cmp ecx, 0x5b
ja case.0x40ba37.34
movzx edx, byte [ecx + 0x40d4f8]
jmp dword [edx*4 + 0x40d4bc]
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x40ba60
lea ebx, [ebx]
cmp al, 0x29
je 0x40ba83
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x40ba50
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x12
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
cmp byte [esi], 0
je 0x40ba60
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
mov dword [esp + 0x48], ebp
add esi, ebp
mov dword [esp + 0x28], 0x7d
mov dword [esp + 0x10], esi
jmp 0x40bc54
cmp byte [esi + 1], 0x3f
mov dword [esp + 0x28], 0x81
jne 0x40badc
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x40bc54
cmp al, 0x21
je 0x40bc54
cmp al, 0x3c
je 0x40bc54
mov eax, dword [esp + 0x14]
mov byte [eax + 3], 0x87
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
mov dword [esp + 0x1c], 3
mov dword [esp + 0x44], 0xffffffff
cmp al, 0x52
jne 0x40bb21
cmp byte [esi + 2], 0x26
lea ecx, [esi + 2]
jne 0x40bb21
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
or edi, 0xffffffff
mov byte [ecx + 3], 0x89
mov esi, dword [esp + 0x10]
mov dword [esp + 0x20], edi
jmp 0x40bb63
cmp al, 0x3c
jne 0x40bb35
mov edi, 0x3e
inc esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], esi
jmp 0x40bb63
cmp al, 0x27
jne 0x40bb49
mov edi, 0x27
inc esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], esi
jmp 0x40bb63
xor edi, edi
mov dword [esp + 0x20], edi
cmp al, 0x2d
je 0x40bb57
cmp al, 0x2b
jne 0x40bb63
inc esi
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
mov dword [esp + 0x44], edx
movzx eax, byte [esi + 1]
mov ebp, dword [esp + 0x130]
mov ebx, dword [ebp + 0xc]
inc esi
test byte [eax + ebx], 0x10
je 0x40d036
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx ecx, al
xor edx, edx
test byte [ebx + ecx], 0x10
mov dword [esp + 0x18], edx
mov dword [esp + 0x3c], esi
je 0x40bbc9
or ebp, 0xffffffff
test edx, edx
js 0x40bbb9
cmp al, 0x30
jb 0x40bbb1
cmp al, 0x39
ja 0x40bbb1
lea edx, [edx + edx*4]
lea eax, [ecx + edx*2 - 0x30]
mov dword [esp + 0x18], eax
jmp 0x40bbb5
mov dword [esp + 0x18], ebp
mov edx, dword [esp + 0x18]
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx ecx, al
test byte [ecx + ebx], 0x10
jne 0x40bb98
mov ebp, esi
sub ebp, dword [esp + 0x3c]
test edi, edi
jle 0x40bbe3
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x10], esi
cmp ecx, edi
jne 0x40d059
mov al, byte [esi]
inc esi
mov dword [esp + 0x10], esi
cmp al, 0x29
jne 0x40d059
cmp dword [esp + 0x134], 0
jne 0x40bc4d
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x40bc8d
test edx, edx
jle 0x40d07d
cmp eax, 0x2d
mov eax, dword [esp + 0x130]
jne 0x40bc2a
mov ecx, dword [eax + 0x38]
sub ecx, edx
inc ecx
mov dword [esp + 0x18], ecx
mov edx, ecx
jmp 0x40bc2d
add edx, dword [eax + 0x38]
test edx, edx
jle 0x40c472
cmp edx, dword [eax + 0x3c]
jg 0x40c472
mov eax, dword [esp + 0x14]
mov ecx, edx
sar ecx, 8
mov byte [eax + 4], cl
mov byte [eax + 5], dl
mov edi, dword [esp + 0x130]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov byte [ebx], al
mov ebp, dword [edi + 0x54]
mov esi, dword [edi + 0x38]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x70], 0
cmp eax, 0x79
je 0x40c5f5
cmp eax, 0x7a
je 0x40c5f5
xor eax, eax
jmp 0x40c5fa
mov eax, dword [esp + 0x130]
mov esi, dword [eax + 0x28]
xor ebx, ebx
cmp dword [eax + 0x2c], ebx
jle 0x40bcbf
mov edi, eax
mov eax, dword [esp + 0x3c]
push ebp
lea edx, [esi + 2]
push edx
push eax
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
je 0x40bcbf
add esi, dword [edi + 0x30]
inc ebx
cmp ebx, dword [edi + 0x2c]
jl 0x40bca0
mov ecx, dword [esp + 0x130]
cmp ebx, dword [ecx + 0x2c]
jge 0x40bcee
movzx eax, byte [esi]
movzx edx, byte [esi + 1]
mov ecx, dword [esp + 0x14]
shl eax, 8
or eax, edx
mov edx, eax
sar edx, 8
inc byte [ecx + 3]
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
jmp 0x40bc4d
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
shr ebx, 3
push ebp
and ebx, 1
push eax
mov esi, ecx
call fcn.00407400
add esp, 8
test eax, eax
jle 0x40bd29
mov ecx, dword [esp + 0x14]
mov edx, eax
sar edx, 8
inc byte [ecx + 3]
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov edi, esi
jmp 0x40bc54
cmp dword [esp + 0x20], 0
jne 0x40d0a0
mov edi, dword [esp + 0x3c]
cmp byte [edi], 0x52
jne 0x40bd97
xor ecx, ecx
lea eax, [ecx + 1]
cmp ebp, eax
jle 0x40bd78
jmp 0x40bd50
mov dl, byte [eax + edi]
cmp dl, 0x30
jb 0x40d0b2
cmp dl, 0x39
ja 0x40d0b2
movzx edx, dl
inc eax
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
cmp eax, ebp
jl 0x40bd50
test ecx, ecx
jne 0x40bd7d
mov ecx, 0xffff
mov eax, dword [esp + 0x14]
mov edx, ecx
sar edx, 8
mov byte [eax + 3], 0x89
mov byte [eax + 4], dl
mov byte [eax + 5], cl
mov edi, esi
jmp 0x40bc54
cmp ebp, 6
jne 0x40bdc6
push ebp
push str.DEFINE
push edi
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x40bdc6
mov eax, dword [esp + 0x14]
mov byte [eax + 3], 0x8b
mov dword [esp + 0x1c], 1
mov edi, esi
jmp 0x40bc54
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x40d0c4
cmp eax, dword [esi + 0x3c]
jg 0x40d0c4
mov ecx, dword [esp + 0x14]
mov edx, eax
sar edx, 8
mov byte [ecx + 4], dl
mov byte [ecx + 5], al
mov edi, esi
jmp 0x40bc54
add dword [edi + 0x48], ebp
add esi, ebp
mov dword [esp + 0x28], 0x77
mov dword [esp + 0x10], esi
jmp 0x40bc54
add esi, ebp
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
jne 0x40be3d
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov byte [eax], 0x97
mov esi, dword [esp + 0x10]
add eax, ebp
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
inc esi
mov dword [esp + 0x14], eax
mov edi, eax
xor ecx, ecx
jmp 0x409465
add dword [edi + 0x48], ebp
mov dword [esp + 0x28], 0x78
jmp 0x40bc54
mov cl, byte [esi + 1]
cmp cl, 0x21
je 0x40bf2f
cmp cl, 0x3d
je 0x40bf18
mov edx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + edx], 0x10
je 0x40d0dc
xor ecx, ecx
cmp al, 0x3c
mov eax, dword [edi + 0xc]
setne cl
add esi, ebp
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
mov dword [esp + 0x3c], esi
dec ecx
and ecx, 0x17
add ecx, 0x27
test byte [edx + eax], 0x10
je 0x40bea5
add esi, ebp
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x40be96
mov edi, esi
sub edi, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x134], edx
je 0x40c048
movzx eax, byte [esi]
cmp eax, ecx
jne 0x40d147
mov eax, dword [esp + 0x130]
cmp dword [eax + 0x2c], 0x2710
jge 0x40d16a
lea ecx, [edi + 3]
cmp ecx, dword [eax + 0x30]
jle 0x40c1d8
mov dword [eax + 0x30], ecx
cmp edi, 0x20
jle 0x40c1d8
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 0x30
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
add dword [edi + 0x48], ebp
add esi, 2
mov dword [esp + 0x28], 0x79
mov dword [esp + 0x10], esi
jmp 0x40bc54
add dword [edi + 0x48], ebp
add esi, 2
mov dword [esp + 0x28], 0x7a
mov dword [esp + 0x10], esi
jmp 0x40bc54
add esi, ebp
mov dword [esp + 0x28], 0x7b
mov dword [esp + 0x10], esi
jmp 0x40bc54
mov edx, dword [esp + 0x14]
mov byte [edx], 0x70
mov esi, dword [esp + 0x10]
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov dword [esp + 0x64], edx
add edx, ebp
xor ecx, ecx
mov dword [esp + 0xb8], ebp
cmp al, 0x30
jb 0x40bf9a
nop
cmp al, 0x39
ja 0x40bf9a
movzx eax, al
add esi, ebp
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jae 0x40bf80
cmp byte [esi], 0x29
jne 0x40d101
cmp ecx, 0xff
jg 0x40d124
mov byte [edx], cl
mov ecx, dword [esp + 0x10]
sub ecx, dword [edi + 0x18]
add edx, ebp
add ecx, ebp
sar ecx, 8
mov byte [edx], cl
mov al, byte [esp + 0x10]
sub al, byte [edi + 0x18]
mov word [edx + 2], 0
inc al
mov byte [edx + 1], al
mov esi, dword [esp + 0x10]
add edx, 4
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x14], edx
inc esi
mov edi, edx
mov edx, dword [esp + 0x6c]
xor ecx, ecx
jmp 0x409465
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x3d
je 0x40c033
cmp al, 0x3e
je 0x40c033
cmp al, 0x3c
je case.0x40ba37.39
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 0x29
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
xor ecx, ecx
cmp al, 0x3e
sete cl
mov ebx, 0x29
mov dword [esp + 0x1c], ecx
jmp 0x40c8d8
mov eax, dword [esp + 0x130]
mov ebp, dword [eax + 0x28]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x44], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0xa8], eax
cmp eax, edx
jle 0x40c167
lea esp, [esp]
mov edx, dword [esp + 0x3c]
mov ebx, edi
lea ecx, [ebp + 2]
cmp edi, 4
jb 0x40c094
mov edi, edi
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40c098
sub ebx, 4
add ecx, 4
add edx, 4
cmp ebx, 4
jae 0x40c080
test ebx, ebx
je 0x40c0e3
movzx eax, byte [edx]
movzx edi, byte [ecx]
sub eax, edi
jne 0x40c0d3
cmp ebx, 1
jbe 0x40c0df
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x40c0d3
cmp ebx, 2
jbe 0x40c0df
movzx eax, byte [edx + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x40c0d3
cmp ebx, 3
jbe 0x40c0df
movzx eax, byte [edx + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov edi, dword [esp + 0x1c]
sar eax, 0x1f
or eax, 1
jmp 0x40c0e5
mov edi, dword [esp + 0x1c]
xor eax, eax
mov ebx, dword [esp + 0x130]
test eax, eax
jne 0x40c123
cmp byte [edi + ebp + 2], al
jne 0x40c13c
movzx edx, byte [ebp]
movzx eax, byte [ebp + 1]
mov ecx, dword [ebx + 0x38]
shl edx, 8
or edx, eax
inc ecx
cmp edx, ecx
je 0x40c119
test dword [esp + 0x2c], 0x80000
je 0x40d18d
mov dword [esp + 0x44], 1
jmp 0x40c125
js 0x40c13c
mov eax, dword [esp + 0x20]
add ebp, dword [ebx + 0x30]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ebx + 0x2c]
jl 0x40c070
jmp 0x40c15e
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebx + 0x30]
sub eax, dword [esp + 0x20]
imul eax, ecx
push eax
add ecx, ebp
push ebp
push ecx
call sub.MSVCRT.dll_memmove
mov esi, dword [esp + 0x1c]
add esp, 0xc
cmp dword [esp + 0x44], 0
jne 0x40c1a4
jmp 0x40c16e
mov ebx, dword [esp + 0x130]
mov eax, dword [ebx + 0x28]
xor ecx, ecx
cmp dword [ebx + 0x2c], ecx
jle 0x40c1a4
cmp eax, ebp
je 0x40c19a
movzx edx, byte [eax]
movzx edi, byte [eax + 1]
shl edx, 8
or edx, edi
mov edi, dword [ebx + 0x38]
inc edi
cmp edx, edi
je 0x40d1b0
mov edi, dword [esp + 0x1c]
jmp 0x40c19b
dec ecx
add eax, dword [ebx + 0x30]
inc ecx
cmp ecx, dword [ebx + 0x2c]
jl 0x40c178
mov eax, dword [ebx + 0x38]
mov edx, dword [esp + 0x3c]
inc eax
sar eax, 8
mov byte [ebp], al
mov cl, byte [ebx + 0x38]
push edi
push edx
lea eax, [ebp + 2]
inc cl
push eax
mov byte [ebp + 1], cl
call sub.MSVCRT.dll_memcpy
mov eax, dword [esp + 0x13c]
mov byte [edi + ebp + 2], 0
mov esi, dword [esp + 0x1c]
add esp, 0xc
inc dword [eax + 0x2c]
mov edi, dword [esp + 0x130]
inc esi
mov dword [esp + 0x10], esi
inc dword [edi + 0x38]
mov ecx, dword [edi + 0x38]
mov eax, dword [esp + 0x14]
sar ecx, 8
mov byte [eax + 3], cl
mov dl, byte [edi + 0x38]
mov byte [eax + 4], dl
mov dword [esp + 0x1c], 2
jmp 0x40bc54
mov ebx, 0x29
mov dword [esp + 0x1c], ebp
jmp 0x40c8d8
add esi, ebp
mov dword [esp + 0x10], esi
mov ebx, 0x29
jmp 0x40c3ed
test dword [esp + 0x2c], 0x1000
je 0x40c1e7
mov dword [esp + 0x28], 0x7d
jmp 0x40bc54
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x130]
mov edx, dword [ecx + 0x38]
push eax
mov dword [esp + 0xa4], esi
mov esi, dword [esp + 0x120]
push edx
lea eax, [esp + 0x18]
push esi
push eax
xor eax, eax
call fcn.004067b0
xor edi, edi
add esp, 0x10
cmp dword [esi], edi
jne 0x40d309
cmp eax, edi
jge 0x40cd0d
mov esi, eax
neg esi
cmp esi, 0x1a
jne 0x40c2cb
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x40c2af
cmp byte [esi + 2], 0x45
jne 0x40c2af
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
add esi, 2
inc esi
xor ecx, ecx
jmp 0x409465
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
mov dword [esp + 0x60], 1
xor ecx, ecx
jmp 0x409465
cmp esi, 0x19
je 0x40cdca
mov ecx, dword [esp + 0x38]
cmp ecx, 0xfffffffe
jne 0x40c2ee
cmp esi, 5
jle 0x40c2ee
cmp esi, 0x17
jge 0x40c2ee
or ecx, 0xffffffff
mov dword [esp + 0x38], ecx
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], ecx
cmp esi, 0x1b
jne 0x40c877
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x130]
mov eax, dword [edx + 0x24]
inc esi
xor ebx, ebx
mov dword [esp + 0x10], esi
cmp byte [esi], 0x3c
mov dword [esp + 0x58], eax
mov al, byte [esi + 1]
setne bl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x48], edi
dec ebx
and ebx, 0x17
add ebx, 0x27
cmp al, 0x2b
je 0x40c3aa
cmp al, 0x2d
je 0x40c3aa
mov al, byte [esi + 1]
lea ecx, [esi + 1]
mov ebp, 1
test al, al
je 0x40c371
jmp 0x40c350
movzx eax, al
cmp eax, ebx
je 0x40c371
mov edi, edx
mov edi, dword [edi + 0xc]
mov al, byte [eax + edi]
test al, 4
jne 0x40c365
xor ebp, ebp
test al, 0x10
je 0x40c371
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x40c350
movzx ecx, byte [ecx]
cmp ecx, ebx
je 0x40c399
mov edx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov dword [edx], 0x39
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
test ebp, ebp
jne 0x40c3e8
mov dword [esp + 0x1c], 1
jmp 0x40c8d8
mov al, byte [esi + 2]
lea ecx, [esi + 2]
cmp al, 0x30
jb 0x40c3c0
cmp al, 0x39
ja 0x40c3c0
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x40c3b4
movzx eax, byte [ecx]
cmp eax, ebx
je 0x40c3e8
mov ecx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [ecx], 0x39
inc esi
xor ecx, ecx
jmp 0x409465
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx edx, al
cmp edx, 0x2b
jne 0x40c495
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x40d1d3
cmp al, 0x39
ja 0x40d1d3
mov al, byte [esi]
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp al, 0x30
jb 0x40c43d
mov edi, edi
cmp al, 0x39
ja 0x40c43d
movzx eax, al
inc esi
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov dword [esp + 0x18], ecx
cmp al, 0x30
jae 0x40c420
movzx eax, byte [esi]
cmp eax, ebx
jne 0x40d261
cmp edx, 0x2d
jne 0x40c853
test ecx, ecx
je 0x40d07d
mov edx, dword [esp + 0x130]
mov eax, dword [edx + 0x38]
sub eax, ecx
inc eax
mov dword [esp + 0x18], eax
test eax, eax
jg 0x40c9fd
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0xf
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
cmp edx, 0x2d
jne 0x40c412
mov cl, byte [esi + 1]
cmp cl, 0x30
jb case.0x40ba37.34
cmp cl, 0x39
ja case.0x40ba37.34
inc esi
mov dword [esp + 0x10], esi
jmp 0x40c412
mov edi, dword [esp + 0x130]
xor ebx, ebx
xor edx, edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x44], edx
lea ecx, [esp + 0x44]
cmp al, 0x29
je 0x40c538
cmp al, 0x3a
je 0x40c530
movzx eax, al
inc esi
sub eax, 0x2d
mov dword [esp + 0x10], esi
cmp eax, 0x4b
ja case.0x40c4ef.46
movzx edx, byte [eax + 0x40d578]
jmp dword [edx*4 + 0x40d554]
lea ecx, [esp + 0x20]
jmp 0x40c52a
or dword [ecx], 0x80000
or dword [edi + 0x50], 0x400
jmp 0x40c52a
or dword [ecx], 1
jmp 0x40c52a
or dword [ecx], 2
jmp 0x40c52a
or dword [ecx], 4
jmp 0x40c52a
or dword [ecx], 8
jmp 0x40c52a
or dword [ecx], 0x200
jmp 0x40c52a
or dword [ecx], 0x40
mov al, byte [esi]
cmp al, 0x29
jne 0x40c4d0
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x20]
or edx, dword [esp + 0x2c]
not ebx
and edx, ebx
cmp byte [esi], 0x29
mov dword [esp + 0x4c], edx
jne 0x40c5e3
mov eax, dword [edi + 0x14]
add eax, 3
cmp dword [esp + 0x14], eax
jne 0x40c595
mov eax, dword [esp + 0x134]
test eax, eax
je 0x40c569
cmp dword [eax], 6
jne 0x40c595
mov ecx, dword [esp + 0x110]
mov dword [edi + 0x4c], edx
mov edi, dword [esp + 0x14]
mov dword [ecx], edx
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
mov ecx, dword [esp + 0x110]
mov edi, dword [esp + 0x14]
mov eax, edx
shr eax, 9
and eax, 1
mov dword [esp + 0xc8], eax
xor eax, 1
mov dword [esp + 0xcc], eax
mov eax, edx
and eax, 1
shl eax, 0x1c
mov dword [ecx], edx
mov dword [esp + 0x24], 0
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x6c]
inc esi
mov dword [esp + 0x78], eax
xor ecx, ecx
jmp 0x409465
inc esi
mov dword [esp + 0x28], 0x7d
mov dword [esp + 0x10], esi
jmp 0x40bc54
mov eax, 1
mov edx, dword [esp + 0x134]
neg edx
sbb edx, edx
lea ecx, [esp + 0x70]
and edx, ecx
push edx
mov edx, dword [esp + 0x12c]
push edi
push edx
lea ecx, [esp + 0xb0]
push ecx
xor ecx, ecx
cmp dword [esp + 0x38], 0x81
lea edx, [esp + 0xbc]
sete cl
push edx
mov edx, dword [esp + 0x30]
add ecx, dword [esp + 0x140]
push ecx
mov ecx, dword [esp + 0x60]
push edx
mov edx, dword [esp + 0x138]
push ecx
push eax
push edx
mov edx, dword [esp + 0x74]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x6c]
push ecx
push edx
call fcn.0040d5d0
add esp, 0x34
test eax, eax
je 0x40d309
mov ecx, dword [esp + 0x28]
cmp ecx, 0x7b
jne 0x40c6fd
mov eax, dword [esp + 0x130]
cmp dword [eax + 0x38], esi
jg 0x40c688
mov byte [ebx], 0x7c
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x10]
cmp byte [esi], 0x29
jne 0x40d23e
mov edx, dword [esp + 0x134]
test edx, edx
je 0x40c78b
mov eax, dword [edx]
mov ecx, dword [esp + 0x70]
mov edi, 0x7fffffeb
sub edi, eax
lea ebp, [ecx - 6]
cmp edi, ebp
jl 0x40cfba
mov ebp, dword [esp + 0x24]
lea eax, [eax + ecx - 6]
mov dword [edx], eax
mov edx, dword [esp + 0x6c]
mov word [ebx + 1], 0x300
mov word [ebx + 3], 0x72
mov byte [ebx + 5], 3
mov esi, dword [esp + 0x10]
add ebx, 6
inc esi
mov dword [esp + 0x14], ebx
mov edi, ebx
xor ecx, ecx
jmp 0x409465
cmp ecx, 0x77
jl 0x40c711
cmp ecx, 0x7a
jg 0x40c711
mov eax, dword [esp + 0x130]
dec dword [eax + 0x48]
cmp ecx, 0x81
jne 0x40c688
cmp dword [esp + 0x134], 0
jne 0x40c688
mov eax, ebx
xor ecx, ecx
nop
movzx edx, byte [eax + 1]
movzx esi, byte [eax + 2]
shl edx, 8
or edx, esi
add eax, edx
inc ecx
cmp byte [eax], 0x72
jne 0x40c730
cmp byte [ebx + 3], 0x8b
jne 0x40c761
cmp ecx, 1
jg 0x40d21a
mov dword [esp + 0x28], 0x8b
jmp 0x40c688
cmp ecx, 2
jg 0x40d22c
cmp ecx, 1
jne 0x40c688
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xac], eax
jmp 0x40c696
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x28]
cmp edx, 0x8b
je 0x40cdce
mov edi, dword [esp + 0x50]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x68], edi
mov dword [esp + 0xb0], 0
cmp edx, 0x7b
jl 0x40c82a
cmp edi, 0xfffffffe
jne 0x40c7f7
test eax, eax
js 0x40c7e5
mov dword [esp + 0x38], eax
mov dword [esp + 0xb0], 1
mov dword [esp + 0x68], 0xffffffff
jmp 0x40c80a
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x68], 0xffffffff
jmp 0x40c80a
test eax, eax
js 0x40c80a
test ecx, ecx
jns 0x40c812
or eax, ebp
mov ecx, eax
mov dword [esp + 0xa4], ecx
test ecx, ecx
js 0x40cdce
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x50], ecx
inc esi
xor ecx, ecx
jmp 0x409465
cmp edx, 0x77
jne 0x40cdce
test ecx, ecx
js 0x40cdce
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x50], ecx
inc esi
xor ecx, ecx
jmp 0x409465
cmp edx, 0x2b
jne 0x40ca01
test ecx, ecx
je 0x40d284
mov eax, dword [esp + 0x130]
add ecx, dword [eax + 0x38]
mov dword [esp + 0x18], ecx
jmp 0x40ca01
cmp esi, 0x1c
jne 0x40cb4a
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x40c8b4
cmp al, 0x27
je 0x40c8b4
cmp al, 0x7b
je 0x40c8b4
mov ecx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [ecx], 0x45
inc esi
xor ecx, ecx
jmp 0x409465
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov dword [esp + 0x1c], edi
cmp al, 0x3c
jne 0x40c8ca
mov ebx, 0x3e
jmp 0x40c8d8
xor ebx, ebx
cmp al, 0x27
setne bl
dec ebx
and ebx, 0xffffffaa
add ebx, 0x7d
mov ecx, dword [esp + 0x130]
mov eax, dword [ecx + 0xc]
inc esi
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
mov edi, esi
je 0x40c900
inc esi
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x40c8f2
mov ebp, esi
sub ebp, edi
cmp dword [esp + 0x134], 0
je 0x40c978
test ebp, ebp
je 0x40d2a7
movzx eax, byte [esi]
cmp eax, ebx
jne 0x40d2ca
cmp ebp, 0x20
jg 0x40bef5
mov ebx, dword [esp + 0x2c]
mov eax, ecx
mov ecx, dword [eax + 0x1c]
push ebp
mov dword [eax + 0x1c], esi
shr ebx, 3
push edi
mov edi, dword [esp + 0x38]
and ebx, 1
mov esi, eax
mov dword [esp + 0xb0], ecx
call fcn.00407400
mov edx, dword [esp + 0xb0]
add esp, 8
mov ecx, esi
mov dword [esp + 0x18], eax
mov dword [ecx + 0x1c], edx
test eax, eax
jns 0x40c9ee
mov dword [esp + 0x18], 0
jmp 0x40c9ee
mov esi, dword [ecx + 0x28]
xor ebx, ebx
cmp dword [ecx + 0x2c], ebx
jle 0x40c9aa
push ebp
lea edx, [esi + 2]
push edx
push edi
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x40c99a
cmp byte [esi + ebp + 2], al
je 0x40c9aa
mov eax, dword [esp + 0x130]
add esi, dword [eax + 0x30]
inc ebx
cmp ebx, dword [eax + 0x2c]
jl 0x40c982
mov eax, dword [esp + 0x130]
cmp ebx, dword [eax + 0x2c]
jge 0x40c9c8
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
mov dword [esp + 0x18], eax
jmp 0x40c9ee
mov ebx, dword [esp + 0x2c]
push ebp
shr ebx, 3
push edi
mov edi, dword [esp + 0x38]
and ebx, 1
mov esi, eax
call fcn.00407400
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jle 0x40d0b2
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
je 0x40cb60
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x134], 0
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x14]
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], eax
jne 0x40cafd
mov ebp, dword [esp + 0x30]
mov byte [edi], 0
test ecx, ecx
je 0x40ca42
mov edx, dword [esi + 0x14]
push ecx
push ebp
push edx
call fcn.004078e0
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x40cac0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
push eax
shr ebx, 3
and ebx, 1
push 0
mov edi, ebp
call fcn.00407400
add esp, 8
test eax, eax
js 0x40d2ed
mov eax, dword [esi + 0x14]
add eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x34]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x1c], eax
lea eax, [ecx + edx - 0x64]
cmp dword [esi + 0x24], eax
jb 0x40ca9d
call fcn.004066c0
mov ecx, dword [esp + 0x11c]
mov dword [ecx], eax
test eax, eax
jne 0x40d309
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x24]
mov edx, eax
sub edx, dword [esi + 0x14]
inc edx
sar edx, 8
mov byte [ecx], dl
sub al, byte [esi + 0x14]
mov edx, dword [esi + 0x24]
inc al
mov byte [edx + 1], al
add dword [esi + 0x24], 2
jmp 0x40caf5
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
jne 0x40cafd
cmp dword [esp + 0x12c], ecx
jg 0x40cafd
push edi
push eax
mov eax, dword [esp + 0x130]
mov edi, esi
mov ebx, ebp
call fcn.00408180
add esp, 8
test eax, eax
jne 0x40d2fc
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov byte [edi], 0x6f
mov ecx, eax
sub ecx, dword [esi + 0x14]
add edi, 3
sar ecx, 8
mov byte [edi - 2], cl
sub al, byte [esi + 0x14]
cmp dword [esp + 0x38], 0xfffffffe
mov byte [edi - 1], al
mov dword [esp + 0x14], edi
mov dword [esp + 0xb0], 0
jne 0x40cdca
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
inc esi
mov dword [esp + 0x38], 0xffffffff
xor ecx, ecx
jmp 0x409465
cmp esi, 0x23
jl 0x40cc07
mov ecx, 0xffffffdd
sub ecx, eax
mov eax, dword [esp + 0x14]
jmp 0x40cb64
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x38], 0xfffffffe
jne 0x40cb73
mov dword [esp + 0x38], 0xffffffff
test byte [esp + 0x2c], 1
mov dword [esp + 0x24], eax
setne dl
add dl, 0x6d
mov byte [eax], dl
mov edx, ecx
sar edx, 8
mov byte [eax + 1], dl
mov byte [eax + 2], cl
add eax, 3
mov dword [esp + 0x14], eax
mov eax, 1
cmp ecx, 0x20
jge 0x40cba2
shl eax, cl
mov edx, dword [esp + 0x130]
or dword [edx + 0x44], eax
cmp ecx, dword [edx + 0x40]
jle 0x40cbb4
mov dword [edx + 0x40], ecx
mov eax, dword [edx + 0x20]
test eax, eax
je 0x40cdca
nop
movzx edx, word [eax + 4]
cmp edx, ecx
je 0x40cbe6
mov eax, dword [eax]
test eax, eax
jne 0x40cbc0
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
mov ecx, 1
mov word [eax + 6], cx
mov esi, dword [esp + 0x10]
inc esi
xor ecx, ecx
jmp 0x409465
cmp esi, 0xf
je 0x40cc98
cmp esi, 0x10
je 0x40cc98
cmp esi, 0x1d
jl 0x40cc4d
cmp esi, 0x22
jg 0x40cc4d
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
lea eax, [eax*4 + 0x74]
mov ecx, 0x46f538
sub ecx, eax
mov esi, dword [ecx]
dec esi
inc edx
inc esi
mov dword [esp + 0x6c], edx
xor ecx, ecx
jmp 0x409465
cmp esi, 5
jle 0x40cc61
cmp esi, 0x17
jge 0x40cc61
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], edx
jmp 0x40cc65
mov dword [esp + 0x24], edi
cmp dword [esp + 0x30], edi
jne 0x40cc75
cmp eax, 0xfffffff2
mov eax, 0xd
je 0x40cc77
mov eax, esi
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x6c]
mov byte [ecx], al
mov esi, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x14], ecx
inc esi
mov edi, ecx
xor ecx, ecx
jmp 0x409465
mov eax, dword [esp + 0x11c]
push eax
lea ecx, [esp + 0xe0]
push ecx
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0xf4]
call fcn.00406e60
add esp, 0xc
cmp eax, edi
jl 0x40d309
mov ecx, dword [esp + 0x14]
xor edx, edx
cmp esi, 0x10
sete dl
mov dword [esp + 0x24], ecx
mov ebp, dword [esp + 0x24]
cmp edx, dword [esp + 0xe8]
setne dl
add dl, 0xf
mov byte [ecx], dl
mov edx, dword [esp + 0x6c]
mov byte [ecx + 1], al
mov al, byte [esp + 0xdc]
mov byte [ecx + 2], al
mov esi, dword [esp + 0x10]
add ecx, 3
mov dword [esp + 0x14], ecx
inc esi
mov edi, ecx
xor ecx, ecx
jmp 0x409465
cmp dword [esp + 0x30], edi
je 0x40cd2e
cmp eax, 0x7f
jle 0x40cd2e
lea ecx, [esp + 0xc0]
push ecx
push eax
call fcn.004212b0
add esp, 8
jmp 0x40965e
mov byte [esp + 0xc0], al
mov eax, 1
jmp 0x40965e
mov edi, dword [esp + 0x130]
mov edx, dword [esp + 0x38]
cmp edx, 0xfffffffe
jne 0x40cda3
mov ebx, dword [esp + 0x50]
or edx, 0xffffffff
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], ebx
cmp eax, 1
je 0x40cd8a
cmp dword [esp + 0x78], 0
je 0x40cd8a
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
movzx ecx, cl
or ecx, dword [esp + 0x78]
mov dword [esp + 0x38], ecx
cmp eax, 1
je 0x40cdca
movzx eax, byte [esi - 1]
or eax, dword [edi + 0x54]
jmp 0x40cdc6
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], ecx
cmp eax, 1
je 0x40cdbb
cmp dword [esp + 0x78], 0
jne 0x40cdca
movzx eax, byte [esi - 1]
or eax, dword [edi + 0x54]
or eax, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x409465
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x34
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 0x14
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x34
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x120]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x124]
mov dword [edx], eax
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x114]
mov dword [ecx], edx
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x118]
mov dword [eax], ecx
mov dword [edx], esi
mov edx, dword [esp + 0x134]
test edx, edx
je 0x40cea8
mov eax, dword [edx]
mov edi, dword [esp + 0x9c]
mov ebx, ecx
mov ebp, 0x7fffffeb
sub ebx, edi
sub ebp, eax
cmp ebp, ebx
jl 0x40ce05
sub eax, edi
add eax, ecx
mov dword [edx], eax
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
xor edx, edx
cmp byte [esi + 1], 0x3a
pop edi
setne dl
dec edx
and edx, 0xffffffee
add edx, 0x1f
mov dword [eax], edx
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x1f
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x1e
jmp 0x40d309
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x47
jmp 0x40d309
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 7
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 8
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 6
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 9
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x14
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x3c
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x3b
jmp 0x40d309
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x42
jmp 0x40d309
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x3b
jmp 0x40d309
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x1c
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
dec esi
pop edi
mov dword [eax], 0x1a
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x3a
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov dword [eax], 0xf
jmp 0x40d309
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0xf
jmp 0x40d309
mov edx, dword [esp + 0x11c]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [edx], eax
jmp 0x40d309
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
add esi, ebp
pop edi
mov dword [eax], 0x18
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x27
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x26
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x2a
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x31
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x2b
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x41
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 0x3f
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0xc
mov ecx, dword [esp + 0x118]
dec esi
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x36
jmp 0x40d309
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x1b
jmp 0x40d309
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0xe
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 0x1d
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [eax], 0x3a
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x3e
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [edx], 0x2a
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret
mov edx, dword [esp + 0x11c]
mov dword [edx], 0xf
jmp 0x40d309
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x28
mov esi, dword [esp + 0x10]
mov ecx, dword [esp + 0x118]
pop edi
mov dword [ecx], esi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xfc
ret