Function at 0x410200
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 0x4102d8
cmp edx, ecx
je 0x4102d8
mov esi, edx
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
mov dword [esp + 0x6c], ecx
cmp dword [esp + 0x134], ecx
je 0x410397
mov ecx, dword [eax + 0x34]
mov edx, dword [eax + 0x10]
lea eax, [ecx + edx - 0x64]
cmp edi, eax
ja 0x413c32
mov eax, dword [esp + 0x9c]
cmp edi, eax
jae 0x410308
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 0x413c55
sub eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x134]
add eax, edi
xor ecx, ecx
mov dword [edx], eax
cmp ebp, ecx
je 0x410381
cmp ebp, dword [esp + 0xb4]
jbe 0x41038e
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 0x4103b1
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x14], edx
mov edi, edx
mov dword [esp + 0x9c], edi
jmp 0x4103b1
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 0x413c78
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x60], ecx
je 0x41050b
cmp ebx, ecx
je 0x41050b
cmp ebx, 0x5c
jne 0x4103eb
cmp byte [esi + 1], 0x45
jne 0x4103eb
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 0x4102b5
cmp eax, ecx
je 0x41042c
cmp dword [esp + 0x134], ecx
jne 0x410428
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.0x41067b.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 0x4104ae
cmp ebx, 0xc0
jl 0x4104ae
mov dl, byte [esi + 1]
inc esi
and dl, 0xc0
cmp dl, 0x80
jne 0x4104ae
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 0x410495
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 0x4104e3
mov edi, edi
mov dl, byte [esp + ecx + 0xc0]
mov byte [esi], dl
inc ecx
inc esi
cmp ecx, eax
jl 0x4104d0
mov dword [esp + 0x14], esi
mov cl, byte [esp + 0xc0]
cmp cl, 0xd
je 0x4104f8
cmp cl, 0xa
jne 0x413b8f
mov edi, dword [esp + 0x130]
or dword [edi + 0x50], 0x800
jmp 0x413b96
cmp ebx, 0x2a
je 0x410682
cmp ebx, 0x2b
je 0x410682
cmp ebx, 0x3f
je 0x410682
cmp ebx, 0x7b
jne 0x41053b
lea eax, [esi + 1]
call fcn.0040d590
test eax, eax
jne 0x410682
mov ecx, dword [esp + 0x64]
xor edi, edi
test ecx, ecx
je 0x410591
mov eax, dword [esp + 0xb8]
mov edx, eax
dec eax
mov dword [esp + 0xb8], eax
test edx, edx
jg 0x410591
cmp dword [esp + 0x134], edi
jne 0x41058d
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 0x410625
mov eax, dword [esp + 0x130]
mov ecx, dword [eax + 0xc]
test byte [ebx + ecx], 1
jne 0x413c1e
cmp ebx, 0x23
jne 0x410621
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x41061f
mov edx, dword [esp + 0x130]
mov ecx, dword [edx + 0x60]
test ecx, ecx
je 0x41068c
mov eax, dword [edx + 0x1c]
cmp esi, eax
jae 0x4106b4
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.004236b0
mov esi, dword [esp + 0x24]
add esp, 0x14
test eax, eax
je 0x4106b4
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 0x413c1e
xor ebx, ebx
mov ebp, dword [esp + 0x24]
test dword [esp + 0x2c], 0x4000
je 0x41066b
test edi, edi
jne 0x41066b
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.0x41067b.1
movzx eax, byte [ebx + 0x4141a8]
jmp dword [eax*4 + 0x414174]
mov edi, 1
jmp 0x410591
mov ecx, dword [edx + 0x64]
mov ebx, dword [edx + 0x1c]
sub ebx, ecx
cmp esi, ebx
ja 0x4106b4
cmp al, byte [edx + 0x68]
jne 0x4106b4
cmp ecx, 1
je 0x410604
mov al, byte [esi + 1]
mov ecx, edx
cmp al, byte [ecx + 0x69]
je 0x410604
inc esi
cmp dword [esp + 0x30], 0
mov dword [esp + 0x10], esi
je 0x4106dd
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x4106dd
lea ebx, [ebx]
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
and al, 0xc0
cmp al, 0x80
je 0x4106d0
mov al, byte [esi]
test al, al
jne 0x4105c0
jmp 0x41061f
test byte [esp + 0x2c], 2
mov dword [esp + 0x24], 0
je 0x41072c
cmp dword [esp + 0x38], 0xfffffffe
jne 0x41070a
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 0x4102b5
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 0x4102b5
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 0x4102b5
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x410792
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 0x4102b5
mov edx, dword [esp + 0x130]
test dword [edx + 0x4c], 0x2000000
je case.0x41067b.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 0x41081e
cmp al, 0x2e
je 0x41081e
cmp al, 0x3d
jne 0x41083b
lea ecx, [esp + 0xa0]
push ecx
push esi
call fcn.0040f010
mov esi, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x413d08
xor edi, edi
mov dword [esp + 0x1c], edi
inc esi
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
cmp ebx, 0x5c
jne 0x410871
inc esi
cmp byte [esi], 0x45
je 0x410841
push 3
push 0x4acf48
push esi
call sub.MSVCRT.dll_strncmp
mov esi, dword [esp + 0x1c]
add esp, 0xc
test eax, eax
jne 0x4108d7
add esi, 3
jmp 0x410841
test edi, edi
jne 0x41087f
cmp ebx, 0x5e
jne 0x41087f
lea edi, [ebx - 0x5d]
jmp 0x41083d
cmp ebx, 0x5d
jne 0x4108d7
mov edx, dword [esp + 0x130]
test dword [edx + 0x4c], 0x2000000
je 0x4108d7
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 0x4108bb
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 0x4102b5
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 0x413dc4
cmp dword [esp + 0x30], 0
je 0x410a50
cmp ebx, 0xc0
jl 0x410a50
movzx ebx, byte [esi]
cmp ebx, 0xc0
jl 0x410a50
test bl, 0x20
jne 0x410971
movzx edx, byte [esi + 1]
and ebx, 0x1f
and edx, 0x3f
shl ebx, 6
or ebx, edx
inc esi
jmp 0x410a4c
test bl, 0x10
jne 0x410999
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 0x410a4c
test bl, 8
jne 0x4109cd
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 0x410a4c
test bl, 4
jne 0x410a0a
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 0x410a4c
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 0x410a65
mov ecx, ebp
mov ebp, dword [esp + 0x4c]
sub ecx, ebp
add dword [eax], ecx
cmp dword [esp + 0x60], 0
je 0x410a8d
cmp ebx, 0x5c
jne 0x410c8e
cmp byte [esi + 1], 0x45
jne 0x410c8e
mov dword [esp + 0x60], 0
inc esi
jmp 0x411076
cmp ebx, 0x5b
jne 0x410c3e
mov al, byte [esi + 1]
cmp al, 0x3a
je 0x410aa9
cmp al, 0x2e
je 0x410aa9
cmp al, 0x3d
jne 0x410c8e
lea edx, [esp + 0xa0]
push edx
push esi
call fcn.0040f010
add esp, 8
test eax, eax
je 0x410c8a
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 0x413d37
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5e
jne 0x410b03
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.0040f090
add esp, 4
test eax, eax
js 0x413d5a
mov ecx, dword [esp + 0x2c]
test cl, 1
je 0x410b2d
cmp eax, 2
jg 0x410b2d
xor eax, eax
test ecx, 0x20000000
je 0x410b5f
mov ecx, edi
neg ecx
sbb ecx, ecx
and ecx, 0xe
add ecx, eax
mov ecx, dword [ecx*4 + 0x59b5a8]
test ecx, ecx
je 0x410b5f
mov edx, dword [esp + 0xa0]
inc edx
mov dword [esp + 0x6c], edx
lea esi, [ecx - 1]
jmp 0x411076
mov edx, dword [esp + 0x44]
lea eax, [eax + eax*2]
mov esi, dword [eax*4 + 0x4ac1f0]
add esi, edx
mov ecx, 8
lea edi, [esp + 0xec]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax*4 + 0x4ac1f4]
mov esi, dword [eax*4 + 0x4ac1f8]
test ecx, ecx
js 0x410bc4
xor eax, eax
add ecx, edx
test esi, esi
js 0x410bb2
jmp 0x410ba0
mov dl, byte [ecx + eax]
or byte [esp + eax + 0xec], dl
inc eax
cmp eax, 0x20
jl 0x410ba0
jmp 0x410bc4
mov dl, byte [ecx + eax]
not dl
and byte [esp + eax + 0xec], dl
inc eax
cmp eax, 0x20
jl 0x410bb2
test esi, esi
jns 0x410bca
neg esi
cmp esi, 1
jne 0x410bd9
and byte [esp + 0xed], 0xc3
jmp 0x410be6
cmp esi, 2
jne 0x410be6
and byte [esp + 0xf7], 0x7f
xor eax, eax
cmp dword [esp + 0x5c], eax
je 0x410c10
mov edi, edi
mov cl, byte [esp + eax + 0xec]
not cl
or byte [esp + eax + 0x7c], cl
inc eax
cmp eax, 0x20
jl 0x410bf0
jmp 0x410c21
mov dl, byte [esp + eax + 0xec]
or byte [esp + eax + 0x7c], dl
inc eax
cmp eax, 0x20
jl 0x410c10
mov esi, dword [esp + 0xa0]
inc esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x3c], 2
jmp 0x411076
cmp ebx, 0x5c
jne 0x410c8e
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.0040d600
add esp, 0x10
cmp dword [esi], 0
mov ebx, eax
jne 0x414159
mov esi, ebx
neg esi
cmp esi, 5
jne 0x410d0b
lea ebx, [edi + 7]
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
mov ecx, dword [esp + 0x60]
jne 0x410cb1
cmp byte [esi + 2], 0x45
jne 0x410cad
add esi, 2
xor ecx, ecx
mov dword [esp + 0x10], esi
cmp byte [esi + 1], 0x5c
je 0x410c98
mov dword [esp + 0x60], ecx
mov edi, esi
cmp ebx, 0xd
je 0x410cbd
cmp ebx, 0xa
jne 0x410ccb
mov eax, dword [esp + 0x130]
or dword [eax + 0x50], 0x800
test ecx, ecx
jne 0x4115d9
cmp byte [esi + 1], 0x2d
jne 0x4115d9
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x411284
lea ecx, [ecx]
cmp byte [esi + 1], 0x45
jne 0x411251
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x410cf0
jmp 0x411284
cmp esi, 0xc
je 0x413d6c
cmp esi, 0x1a
jne 0x410d3a
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x410d31
cmp byte [esi + 2], 0x45
jne 0x410d31
add esi, 2
jmp 0x411076
mov dword [esp + 0x60], edi
jmp 0x411076
cmp esi, 0x19
je 0x411072
test ebx, ebx
jns 0x410c8a
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.0x410d75.12
movzx ecx, byte [ecx + 0x41425c]
jmp dword [ecx*4 + 0x414228]
mov edx, dword [esp + 0x10]
lea eax, [ebx*4 + 0x74]
mov ecx, 0x59b590
sub ecx, eax
mov esi, dword [ecx]
sub esi, edi
sub dword [esp + 0x28], edi
mov dword [esp + 0x6c], edx
jmp 0x411076
xor ecx, ecx
mov dl, byte [eax + ecx + 0x40]
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x410da1
jmp 0x411072
mov dword [esp + 0x20], edi
xor ecx, ecx
jmp 0x410dc0
mov dl, byte [eax + ecx + 0x40]
not dl
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x410dc0
jmp 0x411072
xor ecx, ecx
jmp 0x410de0
mov dl, byte [eax + ecx + 0xa0]
or byte [esp + ecx + 0x7c], dl
add ecx, edi
cmp ecx, 0x20
jl 0x410de0
jmp 0x411072
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 0x410e00
jmp 0x411072
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 0x410e30
jmp 0x411072
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 0x410e51
or byte [esp + 0x7d], 8
jmp 0x411072
or byte [esp + 0x7d], dl
or byte [esp + 0x80], 1
or byte [esp + 0x90], 1
cmp dword [esp + 0x30], 0
je 0x411072
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x1680
mov dword [esp + 0x50], edi
call fcn.00423a20
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x180e
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x2000
call fcn.00423a20
add ebp, eax
push ebp
push 0x200a
call fcn.00423a20
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x202f
call fcn.00423a20
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x205f
call fcn.00423a20
add ebp, eax
mov byte [ebp], 1
add ebp, edi
push ebp
push 0x3000
call fcn.00423a20
add esp, 0x38
jmp 0x411070
xor eax, eax
mov ecx, eax
sub ecx, edi
mov edx, 0xff
je 0x410f33
sub ecx, 3
je 0x410f2c
sub ecx, 0x10
jne 0x410f38
mov edx, 0xfe
jmp 0x410f38
mov edx, 0xfd
or byte [esp + eax + 0x7c], dl
add eax, edi
cmp eax, 0x20
jl 0x410f17
cmp dword [esp + 0x30], 0
je 0x411072
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x100
mov dword [esp + 0x50], edi
call fcn.00423a20
add ebp, eax
push ebp
push 0x167f
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x1681
call fcn.00423a20
add ebp, eax
push ebp
push 0x180d
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x180f
call fcn.00423a20
add ebp, eax
push ebp
push 0x1fff
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x200b
call fcn.00423a20
add ebp, eax
push ebp
push 0x202e
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add esp, 0x40
add ebp, edi
push ebp
push 0x2030
call fcn.00423a20
add ebp, eax
push ebp
push 0x205e
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x2060
call fcn.00423a20
add ebp, eax
push ebp
push 0x2fff
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x3001
call fcn.00423a20
add ebp, eax
push ebp
push 0x10ffff
call fcn.00423a20
add esp, 0x30
jmp 0x411070
or byte [esp + 0x7d], 0x3c
or byte [esp + 0x8c], 0x20
cmp dword [esp + 0x30], 0
je 0x411072
mov byte [ebp], dl
add ebp, edi
push ebp
push 0x2028
mov dword [esp + 0x50], edi
call fcn.00423a20
add ebp, eax
push ebp
push 0x2029
call fcn.00423a20
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 0x4110a4
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x413dc4
lea esi, [eax + 1]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x10], esi
movzx ebx, byte [esi]
test ebx, ebx
je 0x413dc4
cmp ebx, 0x5d
jne 0x410931
cmp dword [esp + 0x60], 0
jne 0x410931
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x4110c8
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 0x4117bc
cmp dword [esp + 0x20], 0
je 0x4110f4
test dword [esp + 0x2c], 0x20000000
je 0x4117bc
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 0x41178d
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 0x411793
xor eax, eax
mov ecx, eax
sub ecx, edi
mov edx, 0xff
je 0x411169
sub ecx, 0xf
jne 0x41116e
mov edx, 0xdf
jmp 0x41116e
mov edx, 0xc3
or byte [esp + eax + 0x7c], dl
add eax, edi
cmp eax, 0x20
jl 0x411152
cmp dword [esp + 0x30], 0
je 0x411072
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x100
mov dword [esp + 0x50], edi
call fcn.00423a20
add ebp, eax
push ebp
push 0x2027
call fcn.00423a20
add ebp, eax
mov byte [ebp], 2
add ebp, edi
push ebp
push 0x202a
call fcn.00423a20
add ebp, eax
push ebp
push 0x10ffff
call fcn.00423a20
add esp, 0x20
jmp 0x411070
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.0040dcb0
add esp, 0xc
test eax, eax
js 0x414159
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 0x411072
test byte [esp + 0x2c], 0x40
mov esi, dword [esp + 0x10]
jne 0x413d7e
sub dword [esp + 0x28], edi
sub dword [esp + 0x3c], edx
movzx ebx, byte [esi]
jmp 0x410c8e
cmp byte [esi], 0x5c
jne 0x411284
cmp byte [esi + 1], 0x51
jne 0x411284
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
jne 0x41127c
cmp byte [esi + 1], 0x45
jne 0x41127c
add esi, 2
mov dword [esp + 0x10], esi
cmp byte [esi], 0x5c
je 0x411256
jmp 0x411284
mov dword [esp + 0x60], 1
mov al, byte [esi]
test al, al
je 0x4115d3
mov ecx, dword [esp + 0x60]
test ecx, ecx
jne 0x41129e
cmp al, 0x5d
je 0x4115d3
cmp dword [esp + 0x30], 0
je 0x4113a6
movzx eax, al
mov dword [esp + 0x18], eax
cmp eax, 0xc0
jl 0x4113ad
movzx edx, byte [esi + 1]
and edx, 0x3f
test al, 0x20
jne 0x4112d8
and eax, 0x1f
shl eax, 6
or edx, eax
inc esi
mov dword [esp + 0x10], esi
jmp 0x4113a9
test al, 0x10
jne 0x4112fc
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 0x4113a9
test al, 8
jne 0x41132c
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 0x4113a9
test al, 4
jne 0x411365
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 0x4113a9
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 0x4113a9
movzx edx, al
mov dword [esp + 0x18], edx
test ecx, ecx
jne 0x411408
cmp dword [esp + 0x18], 0x5c
jne 0x411408
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.0040d600
add esp, 0x10
cmp dword [esi], 0
mov dword [esp + 0x18], eax
jne 0x414159
test eax, eax
jns 0x411404
cmp eax, 0xfffffffb
jne 0x4115d3
mov dword [esp + 0x18], 8
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
cmp eax, ebx
jl 0x413da1
je 0x4115d9
cmp eax, 0xd
je 0x411424
cmp eax, 0xa
jne 0x411432
mov ecx, dword [esp + 0x130]
or dword [ecx + 0x50], 0x800
cmp dword [esp + 0x30], 0
mov dword [esp + 0x3c], 2
je 0x411551
cmp eax, 0xff
jg 0x411460
test byte [esp + 0x2c], 1
je 0x411551
cmp eax, 0x7f
jle 0x411551
test byte [esp + 0x2c], 1
mov dword [esp + 0x48], 1
je 0x411538
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.0040f2f0
add esp, 8
test eax, eax
je 0x411538
jmp 0x4114b0
mov eax, dword [esp + 0xd0]
mov esi, dword [esp + 0xbc]
cmp eax, ebx
jb 0x4114cc
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jbe 0x411512
jmp 0x4114df
lea ecx, [ebx - 1]
cmp esi, ecx
jb 0x4114d7
mov ebx, eax
jmp 0x411512
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jbe 0x4114ea
inc ecx
cmp eax, ecx
ja 0x4114ea
mov dword [esp + 0x18], esi
jmp 0x411512
cmp eax, esi
jne 0x4114f5
mov byte [ebp], 1
inc ebp
jmp 0x411506
mov byte [ebp], 2
inc ebp
push ebp
push eax
call fcn.00423a20
add esp, 8
add ebp, eax
push ebp
push esi
call fcn.00423a20
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.0040f2f0
add esp, 8
test eax, eax
jne 0x4114b0
mov byte [ebp], 2
inc ebp
push ebp
push ebx
call fcn.00423a20
mov ecx, dword [esp + 0x20]
add ebp, eax
push ebp
push ecx
jmp 0x411068
cmp dword [esp + 0x134], 0
mov dword [esp + 0x28], 1
jne 0x411076
cmp ebx, dword [esp + 0x18]
jg 0x411076
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 0x4115c7
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 0x411580
jmp 0x411076
mov esi, edi
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x3c]
cmp eax, 2
jge 0x4115e7
inc eax
mov dword [esp + 0x3c], eax
cmp eax, 1
jne 0x41166a
cmp byte [esi + 1], 0x5d
jne 0x41166a
mov eax, dword [esp + 0x30]
test eax, eax
je 0x41160d
cmp dword [esp + 0x1c], 0
je 0x41160d
cmp ebx, 0x80
jge 0x41166e
mov ecx, dword [esp + 0x50]
inc esi
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x10], esi
mov dword [esp + 0x5c], ecx
je 0x41175d
mov eax, dword [esp + 0x38]
cmp eax, 0xfffffffe
jne 0x411635
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 0x4102b5
mov eax, dword [esp + 0x30]
test eax, eax
je 0x411705
cmp ebx, 0xff
jg 0x41168e
test byte [esp + 0x2c], 1
je 0x411705
cmp ebx, 0x7f
jle 0x411705
mov byte [ebp], 1
inc ebp
push ebp
push ebx
mov dword [esp + 0x50], 1
call fcn.00423a20
add esp, 8
add ebp, eax
test byte [esp + 0x2c], 1
je 0x411072
mov eax, ebx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
movzx eax, byte [eax + 0x4ae960]
mov ecx, ebx
shl eax, 7
and ecx, 0x8000007f
jns 0x4116d6
dec ecx
or ecx, 0xffffff80
inc ecx
add eax, ecx
movzx edx, word [eax*2 + 0x4b0b60]
mov eax, dword [edx*8 + 0x4ad884]
add eax, ebx
cmp eax, ebx
je 0x411072
mov byte [ebp], 1
inc ebp
push ebp
push eax
call fcn.00423a20
add esp, 8
jmp 0x411070
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 0x411076
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 0x411076
test eax, eax
je 0x41177c
cmp ebx, 0x7f
jle 0x41177c
lea eax, [esp + 0xc0]
push eax
push ebx
call fcn.00423a20
add esp, 8
jmp 0x4104ae
mov byte [esp + 0xc0], bl
mov eax, 1
jmp 0x4104ae
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 0x4102b5
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 0x411804
test eax, eax
je 0x4117f5
xor eax, eax
mov cl, byte [esp + eax + 0x7c]
not cl
mov byte [esp + eax + 0x7c], cl
inc eax
cmp eax, 0x20
jl 0x4117e5
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 0x4102b5
test edi, edi
je case.0x41067b.1
mov edi, dword [esp + 0x11c]
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x58]
push eax
lea eax, [esi + 1]
call fcn.0040ddd0
add esp, 8
cmp dword [edi], 0
mov esi, eax
mov dword [esp + 0x10], esi
jne 0x41415d
mov eax, dword [esp + 0x54]
jmp 0x411881
mov dword [esp + 0x34], 0xffffffff
jmp 0x41187b
mov eax, 1
mov dword [esp + 0x34], 0xffffffff
jmp 0x41187d
mov dword [esp + 0x34], 1
xor eax, eax
mov dword [esp + 0x54], eax
xor ecx, ecx
cmp ebp, ecx
je 0x413de7
cmp eax, ecx
jne 0x41189f
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 0x4118d3
inc esi
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], esi
jmp 0x4118f0
cmp al, 0x3f
jne 0x4118e9
mov eax, dword [esp + 0xcc]
inc esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], esi
jmp 0x4118f4
mov ecx, dword [esp + 0xc8]
mov dword [esp + 0x18], ecx
cmp byte [ebp], 0x6f
jne 0x411984
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 0x41197a
mov eax, dword [edi + 0x10]
mov esi, dword [edi + 0x24]
add eax, 2
cmp esi, eax
jb 0x41197a
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 0x41197a
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 0x41198f
mov edi, dword [esp + 0x130]
mov ebx, dword [esp + 0x14]
mov cl, byte [ebp]
cmp cl, 0x1d
je 0x41217a
cmp cl, 0x1e
je 0x41217a
cmp cl, 0x1f
je 0x41214b
cmp cl, 0x20
je 0x41214b
cmp cl, 0x17
jae 0x411a3f
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 0x411a15
test edx, edx
jns 0x411a15
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.0040f530
mov esi, dword [esp + 0x20]
add esp, 0x10
test eax, eax
mov eax, dword [esp + 0x20]
je 0x411a11
mov dword [esp + 0x18], 0
mov dword [esp + 0x28], 1
mov edx, dword [esp + 0x34]
mov cl, byte [ebp]
cmp cl, 0x10
je 0x412205
cmp cl, 0xf
je 0x412205
mov dword [esp + 0x20], 0xffffffff
mov dword [esp + 0x1c], 0xffffffff
jmp 0x412215
cmp cl, 0x6a
je 0x412097
cmp cl, 0x6b
je 0x412097
cmp cl, 0x6c
je 0x412097
cmp cl, 0x6d
je 0x412097
cmp cl, 0x6e
je 0x412097
cmp cl, 0x77
jb 0x41206b
cmp cl, 0x81
ja 0x41206b
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 0x411a9f
cmp byte [ebp + 3], 0x8b
je 0x4125f7
mov eax, dword [esp + 0x54]
cmp cl, 0x7b
jae 0x411ac8
test eax, eax
jg 0x4125f7
mov ecx, dword [esp + 0x34]
test ecx, ecx
js 0x411abd
cmp ecx, 1
jle 0x411acc
mov ecx, 1
mov dword [esp + 0x34], ecx
jmp 0x411acc
mov ecx, dword [esp + 0x34]
test eax, eax
jne 0x411b9f
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x24]
push ebp
mov byte [ebx], al
push edi
cmp ecx, 1
jg 0x411b48
mov ecx, dword [esp + 0x38]
push ecx
push 1
push esi
call fcn.0040f0e0
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 0x411b1e
mov eax, esi
mov byte [eax], 0x9b
jmp 0x4125f3
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 0x411c14
mov eax, dword [esp + 0x38]
push eax
push 4
push esi
call fcn.0040f0e0
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 0x411c14
cmp eax, 1
jle 0x411c06
cmp dword [esp + 0x134], 0
je 0x411c9b
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 [0x4acf58]
fnstsw ax
test ah, 0x41
je 0x413e0a
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
mov ebp, 0x7fffffeb
sub ebp, eax
cmp ebp, dword [esp + 0x1c]
jl 0x413e0a
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 0x411c16
sub ecx, eax
mov dword [esp + 0x34], ecx
test ecx, ecx
js 0x411f30
cmp dword [esp + 0x134], 0
je 0x411db1
test ecx, ecx
jle 0x411db1
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 [0x4acf58]
fnstsw ax
test ah, 0x41
je 0x413c55
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 0x413c55
mov eax, dword [esp + 0x134]
mov eax, dword [eax]
add ecx, eax
mov eax, dword [esp + 0x134]
mov dword [eax], ecx
jmp 0x411eda
cmp dword [esp + 0xb0], 0
je 0x411cb4
cmp dword [esp + 0x50], 0
jge 0x411cb4
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x20], 1
cmp eax, 1
jle 0x411c06
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 0x411d42
lea esp, [esp]
sub esi, eax
mov dword [esp + 0x4c], esi
mov esi, edi
sub ebp, eax
call fcn.0040d510
mov ecx, dword [esp + 0x11c]
mov dword [ecx], eax
test eax, eax
jne 0x414159
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 0x411d00
mov eax, dword [esp + 0x48]
cmp ebp, esi
jae 0x411d7d
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 0x411d50
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 0x411cd0
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
jmp 0x411c0a
dec ecx
mov dword [esp + 0x20], ecx
js 0x411eda
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 0x411dfc
mov ecx, dword [esp + 0x3c]
mov byte [ebx], 0x7d
inc ebx
test ecx, ecx
jne 0x411de7
xor eax, eax
jmp 0x411deb
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 0x411e64
sub esi, eax
mov dword [esp + 0x4c], esi
mov esi, edi
sub ebp, eax
call fcn.0040d510
mov edx, dword [esp + 0x11c]
mov dword [edx], eax
test eax, eax
jne 0x414159
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 0x411e22
cmp ebp, esi
jae 0x411eba
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 0x411e83
add ebx, dword [esp + 0x48]
dec dword [esp + 0x20]
mov ebp, esi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x14], ebx
jns 0x411dc6
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
cmp dword [esp + 0x3c], 0
je 0x412456
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 0x411f05
mov dword [esp + 0x3c], ecx
jmp 0x411f09
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 0x411ee5
mov dword [esp + 0x14], ebx
jmp 0x41244e
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 0x411f54
cmp cl, 0x7c
jne 0x411f60
cmp dword [esp + 0x28], 0
je 0x411f60
mov byte [esi], 0x7d
jmp 0x411f72
cmp cl, 0x7b
je 0x41205d
cmp cl, 0x7c
je 0x41205d
cmp dword [esp + 0x134], 0
jne 0x411fbd
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.0040e9f0
add esp, 0x10
test eax, eax
jne 0x411fba
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 0x411f80
jmp 0x411fbd
add byte [esi], 5
cmp dword [esp + 0x28], 0
je 0x41204c
mov al, byte [esi]
cmp al, 0x81
je 0x411fdf
cmp al, 0x86
je 0x411fdf
inc al
mov byte [esi], al
mov eax, dword [esp + 0x20]
mov byte [eax], 0x75
jmp 0x412031
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.0040f0e0
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 0x41203c
mov byte [eax], 0x8e
cmp dword [esp + 0x54], 2
jl 0x4125f3
jmp 0x41244e
mov al, byte [esp + 0x18]
mov ecx, dword [esp + 0x20]
add al, 0x73
mov byte [ecx], al
jmp 0x4125f3
mov cl, byte [esp + 0x18]
add cl, 0x73
mov byte [eax], cl
jmp 0x41244e
cmp cl, 0x97
je 0x4125f7
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 0x4120c3
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 0x4102b5
mov edx, dword [esp + 0x54]
test edx, edx
jne 0x4120e2
cmp eax, 0xffffffff
jne 0x4120fe
mov al, byte [esp + 0x18]
add al, 0x62
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x41244a
cmp edx, 1
jne 0x412115
cmp eax, 0xffffffff
jne 0x412115
mov al, byte [esp + 0x18]
add al, 0x64
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x41244a
cmp eax, 1
jne 0x412115
mov al, byte [esp + 0x18]
add al, 0x66
mov byte [ebx], al
inc ebx
mov dword [esp + 0x14], ebx
jmp 0x41244a
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 0x412134
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 0x41244a
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 0x411a11
mov edx, dword [esp + 0x34]
jmp 0x4119da
xor eax, eax
cmp cl, 0x1d
sete al
dec eax
and eax, 0xd
cmp dword [esp + 0x30], 0
mov dword [esp + 0x20], eax
je 0x4121de
mov dl, byte [ebx - 1]
lea ecx, [ebx - 1]
and dl, 0xc0
cmp dl, 0x80
jne 0x4121de
mov al, byte [ecx]
and al, 0xc0
cmp al, dl
jne 0x4121b3
mov dl, byte [ecx - 1]
dec ecx
and dl, 0xc0
cmp dl, 0x80
je 0x4121a7
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 0x4119cf
cmp dword [esp + 0x54], 1
movzx ecx, byte [ebx - 1]
mov dword [esp + 0x24], ecx
jle 0x4119cf
mov ecx, dword [edi + 0x54]
or ecx, dword [esp + 0x24]
or ecx, dword [esp + 0x78]
mov dword [esp + 0x50], ecx
jmp 0x4119cf
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 0x4125f7
mov ecx, dword [esp + 0x18]
add ecx, eax
cmp dword [esp + 0x54], 0
mov dword [esp + 0x18], ecx
jne 0x41227d
cmp edx, 0xffffffff
jne 0x41224b
add cl, 0x21
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x4123ea
cmp edx, 1
jne 0x412260
add cl, 0x25
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x4123ea
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 0x4123ea
cmp dword [esp + 0x54], 1
jne 0x4122c9
cmp edx, 0xffffffff
jne 0x412299
add cl, 0x23
mov byte [ebp], cl
inc ebp
mov dword [esp + 0x14], ebp
jmp 0x4123ea
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
cmp edx, 1
je 0x4125f7
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 0x4123ea
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 0x412359
cmp dword [esp + 0x30], 0
je 0x41232c
test dword [esp + 0x24], 0x10000000
je 0x41232c
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 0x4123ea
mov al, byte [esp + 0x24]
mov byte [ebp], al
mov eax, dword [esp + 0x1c]
inc ebp
test eax, eax
js 0x412349
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 0x4123ea
cmp edx, eax
je 0x4123ea
cmp dword [esp + 0x30], 0
je 0x412393
test dword [esp + 0x24], 0x10000000
je 0x412393
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 0x4123a4
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 0x4123b8
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 0x4123d4
add al, 0x25
mov byte [esi], al
inc esi
jmp 0x4123e6
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 0x41241c
test dword [esp + 0x24], 0x10000000
je 0x41241c
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 0x412427
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 0x412446
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 0x4125f7
mov al, byte [edx]
cmp al, 0x5d
jne 0x41248f
mov al, byte [edx + 3]
cmp al, 0x10
je 0x41247f
cmp al, 0xf
je 0x41247f
movzx ecx, byte [0x4ad035]
xor eax, eax
add ecx, eax
jmp 0x4124c2
movzx ecx, byte [0x4ad035]
mov eax, 2
add ecx, eax
jmp 0x4124c2
cmp al, 0x29
je 0x412497
cmp al, 0x43
jne 0x4124c8
movzx eax, al
movzx ecx, byte [eax + 0x4acfd8]
add edx, ecx
cmp dword [esp + 0x30], 0
mov dword [esp + 0x40], edx
je 0x4124c8
mov al, byte [edx - 1]
cmp al, 0xc0
jb 0x4124c8
movzx eax, al
and eax, 0x3f
movzx ecx, byte [eax + 0x4ad0c0]
add edx, ecx
mov dword [esp + 0x40], edx
mov eax, ebx
sub eax, edx
mov dword [esp + 0x44], eax
test eax, eax
jle 0x4125f7
movzx eax, byte [edx]
add eax, 0xffffffdf
cmp eax, 0x3a
ja case.0x4124ee.34
movzx eax, byte [eax + 0x4142d0]
jmp dword [eax*4 + 0x41427c]
mov byte [edx], 0x2a
jmp 0x4125f3
mov byte [edx], 0x2b
jmp 0x4125f3
mov byte [edx], 0x2c
jmp 0x4125f3
mov byte [edx], 0x2d
jmp 0x4125f3
mov byte [edx], 0x37
jmp 0x4125f3
mov byte [edx], 0x38
jmp 0x4125f3
mov byte [edx], 0x39
jmp 0x4125f3
mov byte [edx], 0x3a
jmp 0x4125f3
mov byte [edx], 0x44
jmp 0x4125f3
mov byte [edx], 0x45
jmp 0x4125f3
mov byte [edx], 0x46
jmp 0x4125f3
mov byte [edx], 0x47
jmp 0x4125f3
mov byte [edx], 0x51
jmp 0x4125f3
mov byte [edx], 0x52
jmp 0x4125f3
mov byte [edx], 0x53
jmp 0x4125f3
mov byte [edx], 0x54
jmp 0x4125f3
mov byte [edx], 0x5e
jmp 0x4125f3
mov byte [edx], 0x5f
jmp 0x4125f3
mov byte [edx], 0x60
jmp 0x4125f3
mov byte [edx], 0x61
jmp 0x4125f3
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.0040f0e0
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 0x4102b5
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 0x41285a
mov cl, byte [esi + 1]
mov edi, dword [esp + 0x130]
lea edx, [esi + 1]
mov dword [esp + 0x44], edx
cmp cl, 0x3a
je 0x41267a
mov ebx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + ebx], 2
je 0x41285c
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, 0x4ac0e0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
je 0x4126ae
jmp 0x4126a0
inc esi
mov dword [esp + 0x10], esi
movzx ecx, byte [esi]
test byte [ecx + eax], 2
jne 0x4126a0
mov edi, esi
sub edi, dword [esp + 0x44]
cmp byte [esi], 0x3a
jne 0x4126e3
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov ecx, esi
mov dword [esp + 0x20], ecx
test al, al
je 0x4126df
lea ebx, [ebx]
cmp al, 0x29
je 0x4126df
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x4126d0
mov ebx, esi
sub ebx, ecx
cmp byte [esi], 0x29
jne 0x413e2d
mov dword [esp + 0x1c], 0
mov esi, 0x4ac110
lea esp, [esp]
cmp edi, dword [esi]
jne 0x412717
mov edx, dword [esp + 0x44]
push edi
push ebp
push edx
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
je 0x41273e
mov eax, dword [esi]
inc dword [esp + 0x1c]
add esi, 0xc
lea ebp, [eax + ebp + 1]
cmp esi, 0x4ac17c
jl 0x412700
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x3c
jmp 0x414159
mov edi, dword [esp + 0x1c]
lea eax, [edi + edi*2]
add eax, eax
mov ecx, dword [eax + eax + 0x4ac114]
add eax, eax
cmp ecx, 0x98
jne 0x4127c2
test ebx, ebx
jne 0x413e50
mov esi, dword [esp + 0x130]
mov eax, dword [esi + 0x20]
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x58], 1
test eax, eax
je 0x41279a
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 0x412780
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 0x412839
mov dword [esp + 0x38], 0xffffffff
jmp 0x412839
test ebx, ebx
jne 0x4127ef
test ecx, ecx
js 0x413e62
mov al, cl
mov ecx, dword [esp + 0x14]
mov byte [ecx], al
inc ecx
mov dword [esp + 0x14], ecx
cmp al, 0x94
jne 0x412839
mov eax, dword [esp + 0x130]
or dword [eax + 0x50], 0x1000
jmp 0x412839
cmp dword [eax + 0x4ac118], 0
jl 0x413e74
mov al, byte [eax + 0x4ac118]
mov esi, dword [esp + 0x14]
mov byte [esi], al
cmp al, 0x95
jne 0x41281a
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 0x41272c
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 0x4102b5
mov edi, ecx
cmp al, 0x3f
jne 0x413078
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.0x412887.34
movzx edx, byte [ecx + 0x414348]
jmp dword [edx*4 + 0x41430c]
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
je 0x4128b0
lea ebx, [ebx]
cmp al, 0x29
je 0x4128d3
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
test al, al
jne 0x4128a0
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 0x4128b0
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
inc esi
xor ecx, ecx
jmp 0x4102b5
mov dword [esp + 0x48], ebp
add esi, ebp
mov dword [esp + 0x28], 0x7d
mov dword [esp + 0x10], esi
jmp 0x412aa4
cmp byte [esi + 1], 0x3f
mov dword [esp + 0x28], 0x81
jne 0x41292c
mov al, byte [esi + 2]
cmp al, 0x3d
je 0x412aa4
cmp al, 0x21
je 0x412aa4
cmp al, 0x3c
je 0x412aa4
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 0x412971
cmp byte [esi + 2], 0x26
lea ecx, [esi + 2]
jne 0x412971
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 0x4129b3
cmp al, 0x3c
jne 0x412985
mov edi, 0x3e
inc esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], esi
jmp 0x4129b3
cmp al, 0x27
jne 0x412999
mov edi, 0x27
inc esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], esi
jmp 0x4129b3
xor edi, edi
mov dword [esp + 0x20], edi
cmp al, 0x2d
je 0x4129a7
cmp al, 0x2b
jne 0x4129b3
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 0x413e86
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 0x412a19
or ebp, 0xffffffff
test edx, edx
js 0x412a09
cmp al, 0x30
jb 0x412a01
cmp al, 0x39
ja 0x412a01
lea edx, [edx + edx*4]
lea eax, [ecx + edx*2 - 0x30]
mov dword [esp + 0x18], eax
jmp 0x412a05
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 0x4129e8
mov ebp, esi
sub ebp, dword [esp + 0x3c]
test edi, edi
jle 0x412a33
movzx ecx, byte [esi]
inc esi
mov dword [esp + 0x10], esi
cmp ecx, edi
jne 0x413ea9
mov al, byte [esi]
inc esi
mov dword [esp + 0x10], esi
cmp al, 0x29
jne 0x413ea9
cmp dword [esp + 0x134], 0
jne 0x412a9d
mov eax, dword [esp + 0x44]
test eax, eax
jle 0x412add
test edx, edx
jle 0x413ecd
cmp eax, 0x2d
mov eax, dword [esp + 0x130]
jne 0x412a7a
mov ecx, dword [eax + 0x38]
sub ecx, edx
inc ecx
mov dword [esp + 0x18], ecx
mov edx, ecx
jmp 0x412a7d
add edx, dword [eax + 0x38]
test edx, edx
jle 0x4132c2
cmp edx, dword [eax + 0x3c]
jg 0x4132c2
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 0x413445
cmp eax, 0x7a
je 0x413445
xor eax, eax
jmp 0x41344a
mov eax, dword [esp + 0x130]
mov esi, dword [eax + 0x28]
xor ebx, ebx
cmp dword [eax + 0x2c], ebx
jle 0x412b0f
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 0x412b0f
add esi, dword [edi + 0x30]
inc ebx
cmp ebx, dword [edi + 0x2c]
jl 0x412af0
mov ecx, dword [esp + 0x130]
cmp ebx, dword [ecx + 0x2c]
jge 0x412b3e
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 0x412a9d
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.0040e250
add esp, 8
test eax, eax
jle 0x412b79
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 0x412aa4
cmp dword [esp + 0x20], 0
jne 0x413ef0
mov edi, dword [esp + 0x3c]
cmp byte [edi], 0x52
jne 0x412be7
xor ecx, ecx
lea eax, [ecx + 1]
cmp ebp, eax
jle 0x412bc8
jmp 0x412ba0
mov dl, byte [eax + edi]
cmp dl, 0x30
jb 0x413f02
cmp dl, 0x39
ja 0x413f02
movzx edx, dl
inc eax
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*2 - 0x30]
cmp eax, ebp
jl 0x412ba0
test ecx, ecx
jne 0x412bcd
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 0x412aa4
cmp ebp, 6
jne 0x412c16
push ebp
push str.DEFINE
push edi
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x412c16
mov eax, dword [esp + 0x14]
mov byte [eax + 3], 0x8b
mov dword [esp + 0x1c], 1
mov edi, esi
jmp 0x412aa4
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x413f14
cmp eax, dword [esi + 0x3c]
jg 0x413f14
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 0x412aa4
add dword [edi + 0x48], ebp
add esi, ebp
mov dword [esp + 0x28], 0x77
mov dword [esp + 0x10], esi
jmp 0x412aa4
add esi, ebp
mov dword [esp + 0x10], esi
cmp byte [esi], 0x29
jne 0x412c8d
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 0x4102b5
add dword [edi + 0x48], ebp
mov dword [esp + 0x28], 0x78
jmp 0x412aa4
mov cl, byte [esi + 1]
cmp cl, 0x21
je 0x412d7f
cmp cl, 0x3d
je 0x412d68
mov edx, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + edx], 0x10
je 0x413f2c
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 0x412cf5
add esi, ebp
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x412ce6
mov edi, esi
sub edi, dword [esp + 0x3c]
xor edx, edx
mov dword [esp + 0x1c], edi
cmp dword [esp + 0x134], edx
je 0x412e98
movzx eax, byte [esi]
cmp eax, ecx
jne 0x413f97
mov eax, dword [esp + 0x130]
cmp dword [eax + 0x2c], 0x2710
jge 0x413fba
lea ecx, [edi + 3]
cmp ecx, dword [eax + 0x30]
jle 0x413028
mov dword [eax + 0x30], ecx
cmp edi, 0x20
jle 0x413028
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 0x412aa4
add dword [edi + 0x48], ebp
add esi, 2
mov dword [esp + 0x28], 0x7a
mov dword [esp + 0x10], esi
jmp 0x412aa4
add esi, ebp
mov dword [esp + 0x28], 0x7b
mov dword [esp + 0x10], esi
jmp 0x412aa4
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 0x412dea
nop
cmp al, 0x39
ja 0x412dea
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 0x412dd0
cmp byte [esi], 0x29
jne 0x413f51
cmp ecx, 0xff
jg 0x413f74
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 0x4102b5
add esi, ebp
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x3d
je 0x412e83
cmp al, 0x3e
je 0x412e83
cmp al, 0x3c
je case.0x412887.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 0x413728
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 0x412fb7
lea esp, [esp]
mov edx, dword [esp + 0x3c]
mov ebx, edi
lea ecx, [ebp + 2]
cmp edi, 4
jb 0x412ee4
mov edi, edi
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x412ee8
sub ebx, 4
add ecx, 4
add edx, 4
cmp ebx, 4
jae 0x412ed0
test ebx, ebx
je 0x412f33
movzx eax, byte [edx]
movzx edi, byte [ecx]
sub eax, edi
jne 0x412f23
cmp ebx, 1
jbe 0x412f2f
movzx eax, byte [edx + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x412f23
cmp ebx, 2
jbe 0x412f2f
movzx eax, byte [edx + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x412f23
cmp ebx, 3
jbe 0x412f2f
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 0x412f35
mov edi, dword [esp + 0x1c]
xor eax, eax
mov ebx, dword [esp + 0x130]
test eax, eax
jne 0x412f73
cmp byte [edi + ebp + 2], al
jne 0x412f8c
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 0x412f69
test dword [esp + 0x2c], 0x80000
je 0x413fdd
mov dword [esp + 0x44], 1
jmp 0x412f75
js 0x412f8c
mov eax, dword [esp + 0x20]
add ebp, dword [ebx + 0x30]
inc eax
mov dword [esp + 0x20], eax
cmp eax, dword [ebx + 0x2c]
jl 0x412ec0
jmp 0x412fae
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 0x412ff4
jmp 0x412fbe
mov ebx, dword [esp + 0x130]
mov eax, dword [ebx + 0x28]
xor ecx, ecx
cmp dword [ebx + 0x2c], ecx
jle 0x412ff4
cmp eax, ebp
je 0x412fea
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 0x414000
mov edi, dword [esp + 0x1c]
jmp 0x412feb
dec ecx
add eax, dword [ebx + 0x30]
inc ecx
cmp ecx, dword [ebx + 0x2c]
jl 0x412fc8
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 0x412aa4
mov ebx, 0x29
mov dword [esp + 0x1c], ebp
jmp 0x413728
add esi, ebp
mov dword [esp + 0x10], esi
mov ebx, 0x29
jmp 0x41323d
test dword [esp + 0x2c], 0x1000
je 0x413037
mov dword [esp + 0x28], 0x7d
jmp 0x412aa4
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.0040d600
xor edi, edi
add esp, 0x10
cmp dword [esi], edi
jne 0x414159
cmp eax, edi
jge 0x413b5d
mov esi, eax
neg esi
cmp esi, 0x1a
jne 0x41311b
mov esi, dword [esp + 0x10]
cmp byte [esi + 1], 0x5c
jne 0x4130ff
cmp byte [esi + 2], 0x45
jne 0x4130ff
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x6c]
add esi, 2
inc esi
xor ecx, ecx
jmp 0x4102b5
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 0x4102b5
cmp esi, 0x19
je 0x413c1a
mov ecx, dword [esp + 0x38]
cmp ecx, 0xfffffffe
jne 0x41313e
cmp esi, 5
jle 0x41313e
cmp esi, 0x17
jge 0x41313e
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 0x4136c7
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 0x4131fa
cmp al, 0x2d
je 0x4131fa
mov al, byte [esi + 1]
lea ecx, [esi + 1]
mov ebp, 1
test al, al
je 0x4131c1
jmp 0x4131a0
movzx eax, al
cmp eax, ebx
je 0x4131c1
mov edi, edx
mov edi, dword [edi + 0xc]
mov al, byte [eax + edi]
test al, 4
jne 0x4131b5
xor ebp, ebp
test al, 0x10
je 0x4131c1
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4131a0
movzx ecx, byte [ecx]
cmp ecx, ebx
je 0x4131e9
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 0x4102b5
test ebp, ebp
jne 0x413238
mov dword [esp + 0x1c], 1
jmp 0x413728
mov al, byte [esi + 2]
lea ecx, [esi + 2]
cmp al, 0x30
jb 0x413210
cmp al, 0x39
ja 0x413210
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x413204
movzx eax, byte [ecx]
cmp eax, ebx
je 0x413238
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 0x4102b5
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
movzx edx, al
cmp edx, 0x2b
jne 0x4132e5
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
cmp al, 0x30
jb 0x414023
cmp al, 0x39
ja 0x414023
mov al, byte [esi]
xor ecx, ecx
mov dword [esp + 0x18], ecx
cmp al, 0x30
jb 0x41328d
mov edi, edi
cmp al, 0x39
ja 0x41328d
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 0x413270
movzx eax, byte [esi]
cmp eax, ebx
jne 0x4140b1
cmp edx, 0x2d
jne 0x4136a3
test ecx, ecx
je 0x413ecd
mov edx, dword [esp + 0x130]
mov eax, dword [edx + 0x38]
sub eax, ecx
inc eax
mov dword [esp + 0x18], eax
test eax, eax
jg 0x41384d
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 0x413262
mov cl, byte [esi + 1]
cmp cl, 0x30
jb case.0x412887.34
cmp cl, 0x39
ja case.0x412887.34
inc esi
mov dword [esp + 0x10], esi
jmp 0x413262
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 0x413388
cmp al, 0x3a
je 0x413380
movzx eax, al
inc esi
sub eax, 0x2d
mov dword [esp + 0x10], esi
cmp eax, 0x4b
ja case.0x41333f.46
movzx edx, byte [eax + 0x4143c8]
jmp dword [edx*4 + 0x4143a4]
lea ecx, [esp + 0x20]
jmp 0x41337a
or dword [ecx], 0x80000
or dword [edi + 0x50], 0x400
jmp 0x41337a
or dword [ecx], 1
jmp 0x41337a
or dword [ecx], 2
jmp 0x41337a
or dword [ecx], 4
jmp 0x41337a
or dword [ecx], 8
jmp 0x41337a
or dword [ecx], 0x200
jmp 0x41337a
or dword [ecx], 0x40
mov al, byte [esi]
cmp al, 0x29
jne 0x413320
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 0x413433
mov eax, dword [edi + 0x14]
add eax, 3
cmp dword [esp + 0x14], eax
jne 0x4133e5
mov eax, dword [esp + 0x134]
test eax, eax
je 0x4133b9
cmp dword [eax], 6
jne 0x4133e5
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 0x4102b5
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 0x4102b5
inc esi
mov dword [esp + 0x28], 0x7d
mov dword [esp + 0x10], esi
jmp 0x412aa4
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.00414420
add esp, 0x34
test eax, eax
je 0x414159
mov ecx, dword [esp + 0x28]
cmp ecx, 0x7b
jne 0x41354d
mov eax, dword [esp + 0x130]
cmp dword [eax + 0x38], esi
jg 0x4134d8
mov byte [ebx], 0x7c
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x10]
cmp byte [esi], 0x29
jne 0x41408e
mov edx, dword [esp + 0x134]
test edx, edx
je 0x4135db
mov eax, dword [edx]
mov ecx, dword [esp + 0x70]
mov edi, 0x7fffffeb
sub edi, eax
lea ebp, [ecx - 6]
cmp edi, ebp
jl 0x413e0a
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 0x4102b5
cmp ecx, 0x77
jl 0x413561
cmp ecx, 0x7a
jg 0x413561
mov eax, dword [esp + 0x130]
dec dword [eax + 0x48]
cmp ecx, 0x81
jne 0x4134d8
cmp dword [esp + 0x134], 0
jne 0x4134d8
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 0x413580
cmp byte [ebx + 3], 0x8b
jne 0x4135b1
cmp ecx, 1
jg 0x41406a
mov dword [esp + 0x28], 0x8b
jmp 0x4134d8
cmp ecx, 2
jg 0x41407c
cmp ecx, 1
jne 0x4134d8
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0xa4], ecx
mov dword [esp + 0xac], eax
jmp 0x4134e6
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x28]
cmp edx, 0x8b
je 0x413c1e
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 0x41367a
cmp edi, 0xfffffffe
jne 0x413647
test eax, eax
js 0x413635
mov dword [esp + 0x38], eax
mov dword [esp + 0xb0], 1
mov dword [esp + 0x68], 0xffffffff
jmp 0x41365a
mov dword [esp + 0x38], 0xffffffff
mov dword [esp + 0x68], 0xffffffff
jmp 0x41365a
test eax, eax
js 0x41365a
test ecx, ecx
jns 0x413662
or eax, ebp
mov ecx, eax
mov dword [esp + 0xa4], ecx
test ecx, ecx
js 0x413c1e
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 0x4102b5
cmp edx, 0x77
jne 0x413c1e
test ecx, ecx
js 0x413c1e
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 0x4102b5
cmp edx, 0x2b
jne 0x413851
test ecx, ecx
je 0x4140d4
mov eax, dword [esp + 0x130]
add ecx, dword [eax + 0x38]
mov dword [esp + 0x18], ecx
jmp 0x413851
cmp esi, 0x1c
jne 0x41399a
mov esi, dword [esp + 0x10]
mov al, byte [esi + 1]
cmp al, 0x3c
je 0x413704
cmp al, 0x27
je 0x413704
cmp al, 0x7b
je 0x413704
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 0x4102b5
inc esi
mov dword [esp + 0x10], esi
mov al, byte [esi]
mov dword [esp + 0x1c], edi
cmp al, 0x3c
jne 0x41371a
mov ebx, 0x3e
jmp 0x413728
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 0x413750
inc esi
mov dword [esp + 0x10], esi
movzx edx, byte [esi]
test byte [edx + eax], 0x10
jne 0x413742
mov ebp, esi
sub ebp, edi
cmp dword [esp + 0x134], 0
je 0x4137c8
test ebp, ebp
je 0x4140f7
movzx eax, byte [esi]
cmp eax, ebx
jne 0x41411a
cmp ebp, 0x20
jg 0x412d45
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.0040e250
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 0x41383e
mov dword [esp + 0x18], 0
jmp 0x41383e
mov esi, dword [ecx + 0x28]
xor ebx, ebx
cmp dword [ecx + 0x2c], ebx
jle 0x4137fa
push ebp
lea edx, [esi + 2]
push edx
push edi
call sub.MSVCRT.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x4137ea
cmp byte [esi + ebp + 2], al
je 0x4137fa
mov eax, dword [esp + 0x130]
add esi, dword [eax + 0x30]
inc ebx
cmp ebx, dword [eax + 0x2c]
jl 0x4137d2
mov eax, dword [esp + 0x130]
cmp ebx, dword [eax + 0x2c]
jge 0x413818
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or eax, ecx
mov dword [esp + 0x18], eax
jmp 0x41383e
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.0040e250
add esp, 8
mov dword [esp + 0x18], eax
test eax, eax
jle 0x413f02
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x14]
je 0x4139b0
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 0x41394d
mov ebp, dword [esp + 0x30]
mov byte [edi], 0
test ecx, ecx
je 0x413892
mov edx, dword [esi + 0x14]
push ecx
push ebp
push edx
call fcn.0040e730
add esp, 0xc
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x413910
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.0040e250
add esp, 8
test eax, eax
js 0x41413d
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 0x4138ed
call fcn.0040d510
mov ecx, dword [esp + 0x11c]
mov dword [ecx], eax
test eax, eax
jne 0x414159
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 0x413945
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
shl ecx, 8
or ecx, edx
jne 0x41394d
cmp dword [esp + 0x12c], ecx
jg 0x41394d
push edi
push eax
mov eax, dword [esp + 0x130]
mov edi, esi
mov ebx, ebp
call fcn.0040efd0
add esp, 8
test eax, eax
jne 0x41414c
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 0x413c1a
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 0x4102b5
cmp esi, 0x23
jl 0x413a57
mov ecx, 0xffffffdd
sub ecx, eax
mov eax, dword [esp + 0x14]
jmp 0x4139b4
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x38], 0xfffffffe
jne 0x4139c3
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 0x4139f2
shl eax, cl
mov edx, dword [esp + 0x130]
or dword [edx + 0x44], eax
cmp ecx, dword [edx + 0x40]
jle 0x413a04
mov dword [edx + 0x40], ecx
mov eax, dword [edx + 0x20]
test eax, eax
je 0x413c1a
nop
movzx edx, word [eax + 4]
cmp edx, ecx
je 0x413a36
mov eax, dword [eax]
test eax, eax
jne 0x413a10
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 0x4102b5
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 0x4102b5
cmp esi, 0xf
je 0x413ae8
cmp esi, 0x10
je 0x413ae8
cmp esi, 0x1d
jl 0x413a9d
cmp esi, 0x22
jg 0x413a9d
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
lea eax, [eax*4 + 0x74]
mov ecx, 0x59b590
sub ecx, eax
mov esi, dword [ecx]
dec esi
inc edx
inc esi
mov dword [esp + 0x6c], edx
xor ecx, ecx
jmp 0x4102b5
cmp esi, 5
jle 0x413ab1
cmp esi, 0x17
jge 0x413ab1
mov edx, dword [esp + 0x14]
mov dword [esp + 0x24], edx
jmp 0x413ab5
mov dword [esp + 0x24], edi
cmp dword [esp + 0x30], edi
jne 0x413ac5
cmp eax, 0xfffffff2
mov eax, 0xd
je 0x413ac7
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 0x4102b5
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.0040dcb0
add esp, 0xc
cmp eax, edi
jl 0x414159
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 0x4102b5
cmp dword [esp + 0x30], edi
je 0x413b7e
cmp eax, 0x7f
jle 0x413b7e
lea ecx, [esp + 0xc0]
push ecx
push eax
call fcn.00423a20
add esp, 8
jmp 0x4104ae
mov byte [esp + 0xc0], al
mov eax, 1
jmp 0x4104ae
mov edi, dword [esp + 0x130]
mov edx, dword [esp + 0x38]
cmp edx, 0xfffffffe
jne 0x413bf3
mov ebx, dword [esp + 0x50]
or edx, 0xffffffff
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], ebx
cmp eax, 1
je 0x413bda
cmp dword [esp + 0x78], 0
je 0x413bda
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 0x4102b5
movzx ecx, cl
or ecx, dword [esp + 0x78]
mov dword [esp + 0x38], ecx
cmp eax, 1
je 0x413c1a
movzx eax, byte [esi - 1]
or eax, dword [edi + 0x54]
jmp 0x413c16
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x68], edx
mov dword [esp + 0x5c], ecx
cmp eax, 1
je 0x413c0b
cmp dword [esp + 0x78], 0
jne 0x413c1a
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 0x4102b5
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 0x413cf8
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 0x413c55
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 0x414159
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x47
jmp 0x414159
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 0x414159
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0x42
jmp 0x414159
mov edx, dword [esp + 0x11c]
mov dword [edx], 0x3b
jmp 0x414159
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 0x414159
mov ecx, dword [esp + 0x11c]
mov dword [ecx], 0xf
jmp 0x414159
mov edx, dword [esp + 0x11c]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [edx], eax
jmp 0x414159
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 0x414159
mov eax, dword [esp + 0x11c]
mov dword [eax], 0x1b
jmp 0x414159
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 0x414159
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