Function at 0x4abf40
Capabilities:
Authenticate hmac
Encode data using base64
Parse credit card information
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [0x66bf78]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0xdc], eax
mov eax, dword [ebp + 0x28]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x7c], eax
mov eax, dword [ecx]
mov dword [ebp - 0xf8], ecx
xor ecx, ecx
mov dword [ebp - 0xe4], edx
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebx]
mov dword [ebp - 0xf4], ebx
mov ebx, dword [edx]
xor edx, edx
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0x9c], edx
mov edx, eax
shr edx, 9
and edx, 1
mov dword [ebp - 0x70], eax
xor esi, esi
mov dword [ebp - 0xe0], edx
xor edx, 1
mov dword [ebp - 0x94], 0
and eax, 1
mov dword [ebp - 0xa4], 0
mov edi, dword [ebp + 0x24]
shl eax, 8
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xd4], ecx
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0x58], esi
mov dword [ebp - 0xe8], edx
mov dword [ebp - 0xac], 0xfffffffe
mov dword [ebp - 0x84], 0xfffffffe
mov dword [ebp - 0x8c], 0xfffffffe
mov dword [ebp - 0x78], 0xfffffffe
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xb0], 0x7fffffeb
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x48], ebx
add eax, 0x1000
cmp dword [ebp - 0x7c], 0
movzx edx, byte [ebx]
mov dword [ebp - 0x98], edx
je 0x4ac10c
cmp ecx, eax
ja 0x4ae8b9
mov eax, dword [ebp - 0x7c]
cmp ecx, dword [ebp - 0xbc]
cmovb ecx, dword [ebp - 0xbc]
mov edx, dword [eax]
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x4c], ecx
sub eax, edx
sub ecx, dword [ebp - 0xbc]
cmp eax, ecx
jl 0x4ae687
sub edx, dword [ebp - 0xbc]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x4c]
add edx, ecx
mov dword [eax], edx
test esi, esi
je 0x4ac0f5
mov edx, dword [ebp - 0xd4]
cmp esi, edx
jbe 0x4ac0fe
sub ecx, esi
push ecx
push esi
push edx
call dword [sym.imp.MSVCR120.dll_memmove]
mov eax, dword [ebp - 0xd4]
add esp, 0xc
mov ecx, dword [ebp - 0x4c]
sub eax, esi
mov esi, dword [ebp - 0xd4]
add ecx, eax
mov ebx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xbc], ecx
jmp 0x4ac115
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x98]
mov dword [ebp - 0xbc], ecx
jmp 0x4ac115
cmp dword [edi + 0x20], eax
ja 0x4ae8b9
cmp dword [ebp - 0x6c], 0
je 0x4ac1b8
test edx, edx
je 0x4ac1b8
cmp edx, 0x5c
jne 0x4ac140
cmp byte [ebx + 1], 0x45
jne 0x4ac140
inc ebx
mov dword [ebp - 0x6c], 0
inc ebx
jmp 0x4ac04e
mov esi, dword [ebp - 0xa8]
test esi, esi
je 0x4ac17a
cmp dword [ebp - 0x7c], 0
jne 0x4ac170
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [edi + 0x18]
mov eax, ebx
mov byte [esi + 5], bl
sar eax, 8
mov byte [esi + 4], al
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0xa8], 0
test dword [ebp - 0x70], 0x4000
je 0x4ae60b
mov eax, dword [ebp - 0x4c]
lea ecx, [eax + 1]
mov dword [ebp - 0xa8], eax
mov byte [eax], 0x52
mov eax, ebx
mov byte [ecx], 0xff
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [edi + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], 0
add ecx, 5
jmp case.0x4ac324.1
cmp edx, 0x2a
je 0x4ac232
cmp edx, 0x2b
je 0x4ac232
cmp edx, 0x3f
je 0x4ac232
cmp edx, 0x7b
jne 0x4ac1dc
lea eax, [ebx + 1]
push eax
call fcn.004afa10
add esp, 4
test eax, eax
jne 0x4ac232
xor esi, esi
cmp dword [ebp - 0xa8], esi
je 0x4ac237
mov ecx, dword [ebp - 0xcc]
mov eax, ecx
dec ecx
mov dword [ebp - 0xcc], ecx
test eax, eax
jg 0x4ac237
cmp dword [ebp - 0x7c], esi
jne 0x4ac22a
mov eax, dword [ebp - 0xa8]
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
mov ecx, dword [ebp - 0xa8]
sub ebx, dword [edi + 0x18]
mov eax, ebx
sar eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0xa8], esi
jmp 0x4ac237
mov esi, 1
mov ecx, dword [ebp - 0x70]
test cl, 8
je 0x4ac29f
mov eax, dword [edi + 0xc]
test byte [edx + eax], 1
jne 0x4ae242
cmp edx, 0x23
jne 0x4ac29f
inc ebx
mov dword [ebp - 0x48], ebx
mov al, byte [ebx]
mov byte [ebp - 0x7d], al
test al, al
je 0x4ac29d
mov edi, edi
mov edx, dword [edi + 0x50]
test edx, edx
je 0x4ac2dd
mov ecx, dword [edi + 0x1c]
cmp ebx, ecx
jae 0x4ac2fe
push 0
lea eax, [edi + 0x54]
push eax
push ecx
push edx
push ebx
call fcn.004b5060
mov ebx, dword [ebp - 0x48]
add esp, 0x14
test eax, eax
je 0x4ac2fe
dec ebx
add ebx, dword [edi + 0x54]
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0
jne 0x4ae242
mov ecx, dword [ebp - 0x70]
xor edx, edx
test ecx, 0x4000
je 0x4ac311
test esi, esi
jne 0x4ac311
mov eax, dword [ebp - 0x4c]
lea ecx, [eax + 1]
mov dword [ebp - 0xa8], eax
mov byte [eax], 0x52
mov eax, ebx
mov byte [ecx], 0xff
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [edi + 0x18]
mov byte [ecx + 2], bl
mov word [ecx + 3], si
add ecx, 5
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
jmp 0x4ac314
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x54]
sub eax, ecx
cmp ebx, eax
ja 0x4ac2fe
mov al, byte [ebp - 0x7d]
cmp al, byte [edi + 0x58]
jne 0x4ac2fe
cmp ecx, 1
je 0x4ac28a
mov al, byte [ebx + 1]
cmp al, byte [edi + 0x59]
je 0x4ac28a
inc ebx
mov dword [ebp - 0x48], ebx
mov al, byte [ebx]
mov byte [ebp - 0x7d], al
test al, al
jne 0x4ac260
jmp 0x4ac29a
mov ecx, dword [ebp - 0x4c]
cmp edx, 0x7c
ja case.0x4ac324.1
movzx eax, byte [edx + 0x4ae910]
jmp dword [eax*4 + 0x4ae8e0]
test byte [ebp - 0x70], 2
je 0x4ac342
mov eax, dword [ebp - 0x78]
mov edx, 0xffffffff
cmp eax, 0xfffffffe
cmove eax, edx
mov dword [ebp - 0x78], eax
mov byte [ecx], 0x19
xor esi, esi
mov ebx, dword [ebp - 0x48]
inc ecx
mov dword [ebp - 0x58], esi
inc ebx
mov dword [ebp - 0x4c], ecx
jmp 0x4ac04e
mov byte [ecx], 0x1a
xor esi, esi
mov ebx, dword [ebp - 0x48]
inc ecx
mov dword [ebp - 0x58], esi
inc ebx
mov dword [ebp - 0x4c], ecx
jmp 0x4ac04e
mov edx, dword [ebp - 0x78]
mov eax, 0xffffffff
cmp edx, 0xfffffffe
mov byte [ecx], 0xc
mov ebx, dword [ebp - 0x48]
mov esi, ecx
cmove edx, eax
mov dword [ebp - 0x58], esi
mov eax, dword [ebp - 0x8c]
inc ecx
mov dword [ebp - 0x78], edx
inc ebx
mov dword [ebp - 0x84], edx
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x4c], ecx
jmp 0x4ac04e
mov al, byte [ebx + 1]
mov dword [ebp - 0x58], ecx
cmp al, 0x3a
je 0x4ac3b6
cmp al, 0x2e
je 0x4ac3b6
cmp al, 0x3d
jne 0x4ac3d1
lea eax, [ebp - 0xc4]
push eax
push ebx
call fcn.004abef0
mov ebx, dword [ebp - 0x48]
add esp, 8
test eax, eax
jne 0x4ae6db
xor eax, eax
mov dword [ebp - 0x60], eax
inc ebx
mov dword [ebp - 0x48], ebx
movzx esi, byte [ebx]
cmp esi, 0x5c
jne 0x4ac408
inc ebx
cmp byte [ebx], 0x45
je 0x4ac3d6
push 3
push 0x4e03e4
push ebx
call dword [sym.imp.MSVCR120.dll_strncmp]
mov ebx, dword [ebp - 0x48]
add esp, 0xc
test eax, eax
jne 0x4ac416
mov eax, dword [ebp - 0x60]
add ebx, 3
jmp 0x4ac3d6
test eax, eax
jne 0x4ac416
cmp esi, 0x5e
jne 0x4ac416
lea eax, [esi - 0x5d]
jmp 0x4ac3d3
xor eax, eax
xor edi, edi
or ecx, 0xffffffff
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edi
xorps xmm0, xmm0
mov dword [ebp - 0x50], ecx
movdqu xmmword [ebp - 0x24], xmm0
movdqu xmmword [ebp - 0x14], xmm0
test esi, esi
je 0x4ae6cd
mov edx, dword [ebp - 0x6c]
mov edi, edi
test edx, edx
je 0x4ac466
cmp esi, 0x5c
jne 0x4ac5ff
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x4ac5ff
xor edx, edx
mov ebx, eax
mov dword [ebp - 0x6c], edx
jmp 0x4aca93
cmp esi, 0x5b
jne 0x4ac5c4
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x4ac482
cmp al, 0x2e
je 0x4ac482
cmp al, 0x3d
jne 0x4ac5ff
lea eax, [ebp - 0xc4]
push eax
push ebx
call fcn.004abef0
add esp, 8
test eax, eax
je 0x4ac5fc
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x74], 0
cmp byte [ebx + 1], 0x3a
mov edi, dword [eax + 8]
jne 0x4ae6a6
add ebx, 2
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x5e
jne 0x4ac4d1
inc ebx
mov dword [ebp - 0x74], 1
mov dword [ebp - 0x68], 1
mov dword [ebp - 0x48], ebx
mov eax, dword [ebp - 0xc4]
sub eax, ebx
push eax
push ebx
call fcn.004abea0
add esp, 8
test eax, eax
js 0x4ae695
test byte [ebp - 0x70], 1
je 0x4ac4f9
xor ecx, ecx
cmp eax, 2
cmovle eax, ecx
lea ecx, [eax + eax*2]
mov eax, dword [ecx*4 + 0x4df940]
mov esi, dword [ecx*4 + 0x4df948]
movdqu xmm0, xmmword [eax + edi]
movdqu xmmword [ebp - 0x44], xmm0
movdqu xmm0, xmmword [eax + edi + 0x10]
mov eax, dword [ecx*4 + 0x4df944]
movdqu xmmword [ebp - 0x34], xmm0
test eax, eax
js 0x4ac551
xor ecx, ecx
lea edx, [eax + edi]
test esi, esi
js 0x4ac542
mov al, byte [edx + ecx]
or byte [ebp + ecx - 0x44], al
inc ecx
cmp ecx, 0x20
jl 0x4ac533
jmp 0x4ac551
mov al, byte [edx + ecx]
not al
and byte [ebp + ecx - 0x44], al
inc ecx
cmp ecx, 0x20
jl 0x4ac542
test esi, esi
jns 0x4ac557
neg esi
cmp esi, 1
jne 0x4ac562
and byte [ebp - 0x43], 0xc3
jmp 0x4ac56b
cmp esi, 2
jne 0x4ac56b
and byte [ebp - 0x39], 0x7f
xor ecx, ecx
cmp dword [ebp - 0x74], ecx
je 0x4ac5a0
mov al, byte [ebp + ecx - 0x44]
not al
or byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x20
jl 0x4ac572
mov eax, dword [ebp - 0xc4]
mov edi, 0xa
mov ecx, dword [ebp - 0x50]
lea ebx, [eax + 1]
jmp 0x4aca8d
mov al, byte [ebp + ecx - 0x44]
or byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x20
jl 0x4ac5a0
mov eax, dword [ebp - 0xc4]
mov edi, 0xa
mov ecx, dword [ebp - 0x50]
lea ebx, [eax + 1]
jmp 0x4aca8d
cmp esi, 0x5c
jne 0x4ac5ff
mov ebx, dword [ebp - 0x5c]
lea eax, [ebp - 0x48]
mov ecx, dword [ebp - 0x54]
push 1
push dword [ebp - 0x70]
push dword [ebx + 0x30]
push ecx
push eax
call fcn.004abab0
mov ecx, dword [ebp - 0x54]
add esp, 0x14
mov esi, eax
cmp dword [ecx], 0
jne 0x4ae69e
neg eax
cmp eax, 5
jne 0x4ac63c
lea esi, [eax + 3]
mov ebx, dword [ebp - 0x48]
cmp byte [ebx + 1], 0x5c
jne 0x4ac620
cmp byte [ebx + 2], 0x45
lea eax, [ebx + 2]
jne 0x4ac620
mov ebx, eax
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x48], ebx
cmp byte [ebx + 1], 0x5c
je 0x4ac605
mov edi, ebx
cmp esi, 0xd
je 0x4ac630
cmp esi, 0xa
jne 0x4ac8a0
mov edx, dword [ebp - 0x5c]
or dword [edx + 0x44], 0x20
jmp 0x4ac8a3
cmp eax, 0x15
jne 0x4ac646
lea esi, [eax + 0x43]
jmp 0x4ac5fc
cmp eax, 0x10
jne 0x4ac650
lea esi, [eax + 0x42]
jmp 0x4ac5fc
cmp eax, 0x19
jne 0x4ac681
mov ebx, dword [ebp - 0x48]
cmp byte [ebx + 1], 0x5c
jne 0x4ac671
cmp byte [ebx + 2], 0x45
lea eax, [ebx + 2]
jne 0x4ac671
mov ecx, dword [ebp - 0x50]
mov ebx, eax
jmp 0x4aca90
mov ecx, dword [ebp - 0x50]
mov edx, 1
mov dword [ebp - 0x6c], edx
jmp 0x4aca93
cmp eax, 0x18
je 0x4ac6ce
test esi, esi
jns 0x4ac5fc
mov edx, dword [ebx + 8]
add edi, 2
cmp dword [ebp - 0x7c], 0
mov dword [ebp - 0x64], edi
jne 0x4ac7a3
mov ecx, 0xfffffffa
sub ecx, esi
cmp ecx, 5
ja case.default.0x4ac6b1
jmp dword [ecx*4 + 0x4ae990]
xor ecx, ecx
lea ebx, [ebx]
mov al, byte [edx + ecx + 0x40]
or byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x20
jl 0x4ac6c0
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
mov dword [ebp - 0x68], 1
xor ecx, ecx
mov al, byte [edx + ecx + 0x40]
not al
or byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x20
jl 0x4ac6e2
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
xor ecx, ecx
nop
mov al, byte [edx + ecx + 0xa0]
or byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x20
jl 0x4ac700
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
mov dword [ebp - 0x68], 1
xor ecx, ecx
jmp 0x4ac730
mov al, byte [edx + ecx + 0xa0]
not al
or byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 0x20
jl 0x4ac730
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
lea eax, [ebp - 0x24]
xor esi, esi
sub edx, eax
lea ecx, [ebp - 0x24]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
or byte [ecx], al
cmp esi, 0x20
jl 0x4ac755
and byte [ebp - 0x23], 0xf7
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
lea eax, [ebp - 0x24]
mov dword [ebp - 0x68], 1
xor esi, esi
sub edx, eax
lea ecx, [ebp - 0x24]
add ecx, esi
inc esi
mov al, byte [ecx + edx]
not al
or byte [ecx], al
cmp esi, 0x20
jl 0x4ac782
or byte [ebp - 0x23], 8
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
cmp esi, 0xfffffff9
je 0x4ac6ce
cmp esi, 0xfffffffa
je 0x4ac6ce
cmp esi, 0xfffffff5
je 0x4ac6ce
cmp esi, 0xfffffff6
je 0x4ac6ce
cmp esi, 0xfffffff7
je 0x4ac6ce
cmp esi, 0xfffffff8
je 0x4ac6ce
jmp 0x4ac7de
mov ecx, dword [ebp - 0x54]
cmp eax, 0x12
jne 0x4ac7fa
or byte [ebp - 0x23], 2
or byte [ebp - 0x20], 1
or byte [ebp - 0x10], 1
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
cmp eax, 0x11
jne 0x4ac836
xor ecx, ecx
mov eax, ecx
mov edx, 0xff
dec eax
je 0x4ac81c
sub eax, 3
je 0x4ac815
sub eax, 0x10
jne 0x4ac821
mov edx, 0xfe
jmp 0x4ac821
mov edx, 0xfd
or byte [ebp + ecx - 0x24], dl
inc ecx
cmp ecx, 0x20
jl 0x4ac801
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
cmp eax, 0x14
jne 0x4ac84e
or byte [ebp - 0x23], 0x3c
or byte [ebp - 0x14], 0x20
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
cmp eax, 0x13
jne 0x4ac885
xor eax, eax
mov ecx, eax
mov edx, 0xff
dec ecx
je 0x4ac86b
sub ecx, 0xf
jne 0x4ac870
mov edx, 0xdf
jmp 0x4ac870
mov edx, 0xc3
or byte [ebp + eax - 0x24], dl
inc eax
cmp eax, 0x20
jl 0x4ac855
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x50]
jmp 0x4aca90
test byte [ebp - 0x70], 0x40
mov ebx, dword [ebp - 0x48]
jne 0x4ae6b4
movzx esi, byte [ebx]
sub edi, 2
mov dword [ebp - 0x64], edi
jmp 0x4ac5ff
mov edx, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x6c]
test ecx, ecx
jne 0x4aca44
cmp byte [ebx + 1], 0x2d
jne 0x4aca44
add ebx, 2
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x84], ebx
cmp byte [ebx], 0x5c
jne 0x4ac928
lea esp, [esp]
cmp byte [ebx + 1], 0x45
jne 0x4ac8e9
add ebx, 2
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x84], ebx
cmp byte [ebx], 0x5c
je 0x4ac8d0
jmp 0x4ac928
cmp byte [ebx], 0x5c
jne 0x4ac928
mov edi, edi
cmp byte [ebx + 1], 0x51
jne 0x4ac928
add ebx, 2
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x84], ebx
cmp byte [ebx], 0x5c
jne 0x4ac920
cmp byte [ebx + 1], 0x45
jne 0x4ac920
add ebx, 2
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x84], ebx
cmp byte [ebx], 0x5c
je 0x4ac8f0
jmp 0x4ac928
mov ecx, 1
mov dword [ebp - 0x6c], ecx
mov al, byte [ebx]
test al, al
je 0x4aca3f
test ecx, ecx
jne 0x4ac93e
cmp al, 0x5d
je 0x4aca3f
cmp dword [ebp - 0x6c], 0
movzx ecx, al
mov dword [ebp - 0x50], ecx
jne 0x4ac9a9
cmp ecx, 0x5c
jne 0x4ac9a9
mov ebx, dword [ebp - 0x54]
lea eax, [ebp - 0x48]
push 1
push dword [ebp - 0x70]
push dword [edx + 0x30]
push ebx
push eax
call fcn.004abab0
add esp, 0x14
mov ecx, eax
cmp dword [ebx], 0
mov dword [ebp - 0x50], ecx
jne 0x4ae69e
test ecx, ecx
jns 0x4ac9a0
cmp ecx, 0xfffffffb
jne 0x4ac983
lea ecx, [eax + 0xd]
jmp 0x4ac99d
cmp ecx, 0xffffffeb
jne 0x4ac98f
mov ecx, 0x58
jmp 0x4ac99d
cmp ecx, 0xfffffff0
jne 0x4aca3f
mov ecx, 0x52
mov dword [ebp - 0x50], ecx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x84], ebx
cmp ecx, esi
jl 0x4ae6bf
je 0x4aca44
cmp ecx, 0xd
je 0x4ac9c1
cmp ecx, 0xa
jne 0x4ac9c8
mov eax, dword [ebp - 0x5c]
or dword [eax + 0x44], 0x20
mov edi, dword [ebp - 0x64]
mov eax, ecx
sub eax, esi
inc edi
add edi, eax
cmp dword [ebp - 0x7c], 0
mov dword [ebp - 0x64], edi
jne 0x4aca90
cmp esi, ecx
jg 0x4aca90
mov edi, dword [ebp - 0x70]
mov ebx, dword [ebp - 0x50]
and edi, 1
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
and edx, 7
add edx, eax
mov al, 1
sar edx, 3
shl al, cl
or byte [ebp + edx - 0x24], al
test edi, edi
je 0x4aca2c
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 4]
movzx ecx, byte [eax + esi]
mov eax, ecx
and ecx, 7
cdq
and edx, 7
add edx, eax
mov al, 1
sar edx, 3
shl al, cl
or byte [ebp + edx - 0x24], al
inc esi
cmp esi, ebx
jle 0x4ac9f0
mov ebx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp - 0x64]
jmp 0x4aca90
mov ebx, edi
mov dword [ebp - 0x48], ebx
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
and edx, 7
add edx, eax
mov al, 1
sar edx, 3
shl al, cl
or byte [ebp + edx - 0x24], al
test byte [ebp - 0x70], 1
je 0x4aca84
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 4]
movzx esi, byte [eax + esi]
mov eax, esi
mov ecx, esi
cdq
and ecx, 7
and edx, 7
add edx, eax
mov al, 1
sar edx, 3
shl al, cl
or byte [ebp + edx - 0x24], al
mov edi, dword [ebp - 0x64]
mov ecx, esi
inc edi
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x64], edi
mov edx, dword [ebp - 0x6c]
inc ebx
mov dword [ebp - 0x48], ebx
movzx esi, byte [ebx]
test esi, esi
je 0x4ae6cd
cmp esi, 0x5d
jne 0x4ac440
test edx, edx
jne 0x4ac444
mov edx, dword [ebp - 0x60]
cmp edi, 1
jne 0x4acb0e
mov ebx, dword [ebp - 0x8c]
mov edi, dword [ebp - 0x5c]
mov dword [ebp - 0xac], ebx
test edx, edx
je 0x4acb03
mov edx, dword [ebp - 0x78]
mov eax, 0xffffffff
mov esi, dword [ebp - 0x58]
cmp edx, 0xfffffffe
cmove edx, eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x84], edx
mov byte [eax], 0x1d
inc eax
mov dword [ebp - 0x4c], eax
mov byte [eax], cl
mov ecx, eax
mov ebx, dword [ebp - 0x48]
inc ecx
mov dword [ebp - 0x4c], ecx
inc ebx
jmp 0x4ac04e
mov edx, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
jmp 0x4ae614
mov eax, dword [ebp - 0x78]
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
cmove eax, ecx
cmp edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xac], eax
setne al
add al, 0x4d
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x4c], ecx
test edx, edx
je 0x4acb7c
cmp dword [ebp - 0x7c], 0
jne 0x4acb8f
lea esi, [ebp - 0x24]
mov edx, 0x20
sub esi, ecx
mov al, byte [esi + ecx]
lea ecx, [ecx + 1]
not al
mov byte [ecx - 1], al
dec edx
jne 0x4acb56
mov ecx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x48]
add ecx, 0x20
mov edi, dword [ebp - 0x5c]
inc ebx
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x4c], ecx
jmp 0x4ac04e
movdqu xmm0, xmmword [ebp - 0x24]
movdqu xmmword [ecx], xmm0
movdqu xmm0, xmmword [ebp - 0x14]
movdqu xmmword [ecx + 0x10], xmm0
mov ebx, dword [ebp - 0x48]
add ecx, 0x20
mov edi, dword [ebp - 0x5c]
inc ebx
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x4c], ecx
jmp 0x4ac04e
test esi, esi
je case.0x4ac324.1
mov edi, dword [ebp - 0x54]
lea eax, [ebp - 0xa4]
push edi
push eax
lea eax, [ebp - 0x94]
push eax
lea eax, [ebx + 1]
push eax
call fcn.004b0420
add esp, 0x10
mov ebx, eax
cmp dword [edi], 0
mov dword [ebp - 0x48], ebx
jne 0x4ae8c2
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x94]
jmp 0x4acc0d
xor eax, eax
or edx, 0xffffffff
jmp 0x4acbfe
mov eax, 1
or edx, 0xffffffff
jmp 0x4acbfe
xor eax, eax
mov edx, 1
mov edi, dword [ebp - 0x54]
mov dword [ebp - 0x94], eax
mov dword [ebp - 0xa4], edx
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x60], edx
test esi, esi
je 0x4ae712
test eax, eax
jne 0x4acc34
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x78], ecx
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x8c], ecx
xor edi, edi
mov dword [ebp - 0x88], esi
cmp eax, edx
mov dword [ebp - 0x74], edi
mov ecx, 0x200
mov dword [ebp - 0x68], edi
cmove ecx, edi
mov dword [ebp - 0xb8], ecx
mov cl, byte [ebx + 1]
cmp cl, 0x2b
jne 0x4acc6c
inc ebx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x68], 1
xor eax, eax
mov dword [ebp - 0x48], ebx
jmp 0x4acc8b
cmp cl, 0x3f
jne 0x4acc82
mov ecx, dword [ebp - 0xe8]
inc ebx
mov dword [ebp - 0x50], ecx
mov eax, ecx
mov dword [ebp - 0x48], ebx
jmp 0x4acc8b
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x58]
mov cl, byte [ecx]
cmp cl, 0x1b
je 0x4ad2eb
cmp cl, 0x1c
je 0x4ad2eb
cmp cl, 0x1d
jne 0x4acd13
cmp dword [ebp - 0x68], 0
mov edi, 0xd
mov eax, dword [ebp - 0x58]
mov esi, dword [ebp - 0x60]
mov dword [ebp - 0x74], edi
movzx edx, byte [eax + 1]
mov dword [ebp - 0x64], edx
jne 0x4accf4
test esi, esi
jns 0x4accf4
push dword [ebp - 0x5c]
lea eax, [ebx + 1]
push dword [ebp - 0x70]
push eax
push 0
push 0
push edx
push 0x1d
call fcn.004ab440
add esp, 0x1c
test eax, eax
je 0x4accf1
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x68], 1
mov ebx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x58]
mov al, byte [edx]
cmp al, 0xf
je 0x4ad34f
cmp al, 0xe
je 0x4ad34f
or edx, 0xffffffff
or ecx, edx
jmp 0x4ad357
cmp cl, 0x16
jae 0x4acd46
cmp dword [ebp - 0x68], 0
mov edi, 0x1a
mov esi, dword [ebp - 0x60]
movzx edx, cl
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x64], edx
jne 0x4accf4
test esi, esi
jns 0x4accf4
push dword [ebp - 0x5c]
lea eax, [ebx + 1]
push dword [ebp - 0x70]
push eax
push 0
push 0
push 0
push edx
jmp 0x4accd7
cmp cl, 0x4d
je 0x4ad211
cmp cl, 0x4e
je 0x4ad211
cmp cl, 0x50
je 0x4ad211
cmp cl, 0x5d
je 0x4acd79
cmp cl, 0x5e
je 0x4acd79
cmp cl, 0x5c
je 0x4acd79
cmp cl, 0x5f
jne 0x4ae6f6
mov dword [ebp - 0x90], edi
xor eax, eax
mov edi, dword [ebp - 0x4c]
sub edi, dword [ebp - 0x58]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0xa0], edi
cmp cl, 0x5f
jne 0x4acda2
cmp byte [eax + 3], 0x65
je 0x4ae704
cmp edx, 0xffffffff
jne 0x4acdd6
mov edx, eax
lea esp, [esp]
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x54
jne 0x4acdb0
mov ecx, dword [ebp - 0x4c]
mov eax, ecx
sub eax, edx
mov edx, dword [ebp - 0x60]
mov dword [ebp - 0x90], eax
jmp 0x4acdd9
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x4ace9e
test edx, edx
jne 0x4ace08
mov edi, dword [ebp - 0x5c]
xor esi, esi
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x4c], ecx
or dword [edi + 0x48], eax
inc ebx
mov dword [ebp - 0x58], esi
jmp 0x4ac04e
mov ebx, dword [ebp - 0x58]
mov byte [ecx], 0
push dword [ebp - 0x9c]
push dword [ebp - 0x5c]
push 0
cmp edx, 1
jg 0x4ace54
push 1
push ebx
call fcn.004ab320
push edi
lea esi, [ebx + 1]
push ebx
push esi
call dword [sym.imp.MSVCR120.dll_memmove]
mov al, byte [ebp - 0x50]
add esp, 0x20
mov edx, dword [ebp - 0x60]
add al, 0x66
inc dword [ebp - 0x4c]
dec edx
mov byte [ebx], al
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x58], esi
mov esi, dword [ebp - 0x88]
jmp 0x4acfac
push 4
push ebx
call fcn.004ab320
push edi
lea eax, [ebx + 4]
push ebx
push eax
call dword [sym.imp.MSVCR120.dll_memmove]
mov al, byte [ebp - 0x50]
add esp, 0x20
mov edx, dword [ebp - 0x60]
add al, 0x66
add dword [ebp - 0x4c], 4
mov byte [ebx], al
lea eax, [ebx + 2]
mov word [ebx + 1], 0x5d
mov byte [ebx + 3], 0
add ebx, 4
mov esi, dword [ebp - 0x88]
dec edx
mov dword [ebp - 0x58], ebx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x64], eax
jmp 0x4acfac
cmp eax, 1
jle 0x4acfa3
mov edi, dword [ebp - 0x7c]
test edi, edi
je 0x4acefa
lea ecx, [eax - 1]
mov eax, dword [ebp - 0xb4]
movd xmm1, ecx
mov edx, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
imul edx, eax
mulsd xmm1, xmm0
comisd xmm1, xmmword [0x4e0438]
ja 0x4ae687
mov eax, dword [ebp - 0xb0]
mov ecx, dword [edi]
sub eax, ecx
cmp eax, edx
jl 0x4ae687
lea eax, [edx + ecx]
mov dword [edi], eax
jmp 0x4acf9d
cmp dword [ebp - 0xd0], 0
je 0x4acf15
mov edx, dword [ebp - 0x8c]
test edx, edx
cmovs edx, dword [ebp - 0x78]
mov dword [ebp - 0x8c], edx
cmp eax, 1
jle 0x4acfa3
mov ebx, dword [ebp - 0xa0]
lea edi, [eax - 1]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x74], edi
lea ecx, [ecx]
mov esi, dword [edx + 0x20]
push ebx
push dword [ebp - 0x58]
push ecx
call sub.MSVCR120.dll_memcpy
mov edx, dword [ebp - 0x5c]
add esp, 0xc
cmp dword [ebp - 0x9c], esi
jae 0x4acf80
mov edi, dword [ebp - 0x9c]
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edx + 0x20]
add ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov cl, byte [edi + 1]
add edi, 2
mov eax, dword [edx + 0x20]
add cl, bl
mov byte [eax + 1], cl
add dword [edx + 0x20], 2
cmp edi, esi
jb 0x4acf51
mov edi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x4c]
add ecx, ebx
mov dword [ebp - 0x9c], esi
dec edi
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x74], edi
jne 0x4acf30
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x60]
test edx, edx
jle 0x4acfb4
sub edx, eax
mov dword [ebp - 0xa4], edx
test edx, edx
js 0x4ad1ae
mov edi, dword [ebp - 0x7c]
test edi, edi
je 0x4ad022
test edx, edx
jle 0x4ad022
mov eax, dword [ebp - 0xb4]
add eax, 7
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mov ecx, eax
movd xmm1, eax
cvtdq2pd xmm1, xmm1
imul ecx, edx
mulsd xmm1, xmm0
sub ecx, 6
comisd xmm1, xmmword [0x4e0438]
ja 0x4ae687
mov eax, dword [ebp - 0xb0]
mov edx, dword [edi]
sub eax, edx
cmp eax, ecx
jl 0x4ae687
lea eax, [ecx + edx]
mov dword [edi], eax
mov edx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x64]
test edi, edi
je 0x4ad16c
jmp 0x4ad126
lea edi, [edx - 1]
mov dword [ebp - 0x74], edi
test edi, edi
js 0x4ad00f
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0xa0]
add al, 0x66
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
lea ecx, [ecx]
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ecx + 0x20]
mov byte [edx], al
inc edx
mov dword [ebp - 0x4c], edx
test edi, edi
je 0x4ad076
mov eax, dword [ebp - 0x64]
mov byte [edx], 0x5d
inc edx
test eax, eax
jne 0x4ad05f
xor ecx, ecx
jmp 0x4ad063
mov ecx, edx
sub ecx, eax
mov eax, ecx
mov dword [ebp - 0x64], edx
sar eax, 8
mov byte [edx], al
mov byte [edx + 1], cl
add edx, 2
mov dword [ebp - 0x4c], edx
push ebx
push dword [ebp - 0x58]
push edx
call sub.MSVCR120.dll_memcpy
add esp, 0xc
cmp dword [ebp - 0x9c], esi
jae 0x4ad0fa
test edi, edi
mov ecx, 4
mov edi, dword [ebp - 0x5c]
mov eax, 1
cmovne eax, ecx
mov edx, 1
mov dword [ebp - 0x98], eax
cmovne edx, ecx
mov eax, dword [ebp - 0x9c]
movzx ecx, byte [eax]
movzx eax, byte [eax + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [edi + 0x20]
add ecx, edx
add ecx, ebx
sar ecx, 8
mov byte [eax], cl
mov eax, dword [ebp - 0x9c]
mov cl, byte [eax + 1]
mov eax, dword [edi + 0x20]
add cl, byte [ebp - 0x98]
add cl, bl
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x9c]
add dword [edi + 0x20], 2
add eax, 2
mov dword [ebp - 0x9c], eax
cmp eax, esi
jb 0x4ad0b1
mov edi, dword [ebp - 0x74]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
add edx, ebx
dec edi
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x74], edi
jns 0x4ad040
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
jmp 0x4ad012
mov edx, dword [ebp - 0x4c]
mov ecx, edx
sub ecx, edi
inc ecx
sub edx, ecx
movzx esi, byte [edx + 1]
movzx eax, byte [edx + 2]
shl esi, 8
or esi, eax
jne 0x4ad140
xor edi, edi
jmp 0x4ad142
sub edi, esi
mov ebx, dword [ebp - 0x4c]
mov eax, ecx
sar eax, 8
mov byte [ebx], 0x54
mov byte [ebx + 1], al
mov byte [ebx + 2], cl
add ebx, 3
mov dword [ebp - 0x4c], ebx
mov byte [edx + 1], al
mov byte [edx + 2], cl
test edi, edi
jne 0x4ad123
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x4c]
cmp dword [ebp - 0x68], 0
je 0x4ad679
mov al, byte [esi]
cmp al, 0x26
je 0x4ad18b
cmp al, 0x40
je 0x4ad193
cmp al, 0x33
jne 0x4ad5b7
cmp al, 0x40
jne 0x4ad5a1
mov cl, byte [esi + 3]
cmp cl, 0xf
je 0x4ad1a4
cmp cl, 0xe
jne 0x4ad5a1
mov ecx, 2
jmp 0x4ad5a3
mov edi, dword [ebp - 0x4c]
sub edi, dword [ebp - 0x90]
mov ebx, edi
movzx ecx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp - 0x50]
add al, 0x55
sub ebx, ecx
cmp dword [ebp - 0x7c], 0
mov byte [edi], al
jne 0x4ad163
cmp byte [ebx], 0x5c
je 0x4ad163
mov esi, ebx
lea esp, [esp]
push 0
push edi
push esi
call fcn.004af000
add esp, 0xc
test eax, eax
jne 0x4ad209
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x53
je 0x4ad1e0
jmp 0x4ad163
add byte [ebx], 3
jmp 0x4ad163
test edx, edx
jne 0x4ad232
mov edi, dword [ebp - 0x5c]
xor esi, esi
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x4c], ecx
or dword [edi + 0x48], eax
inc ebx
mov dword [ebp - 0x58], esi
jmp 0x4ac04e
cmp edx, 1
je 0x4ad23e
mov ecx, dword [ebp - 0x5c]
or dword [ecx + 0x44], 1
mov ecx, dword [ebp - 0x94]
test ecx, ecx
jne 0x4ad284
cmp edx, 0xffffffff
jne 0x4ad266
mov ecx, dword [ebp - 0x4c]
add al, 0x45
mov byte [ecx], al
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
cmp edx, 1
jne 0x4ad2a7
mov ecx, dword [ebp - 0x4c]
add al, 0x49
mov byte [ecx], al
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
cmp ecx, 1
jne 0x4ad2a7
cmp edx, 0xffffffff
jne 0x4ad2a7
mov ecx, dword [ebp - 0x4c]
add al, 0x47
mov byte [ecx], al
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov ebx, dword [ebp - 0x4c]
add al, 0x4b
mov byte [ebx], al
inc ebx
mov eax, ecx
mov dword [ebp - 0x4c], ebx
sar eax, 8
mov byte [ebx], al
xor eax, eax
mov byte [ebx + 1], cl
cmp edx, 0xffffffff
mov ecx, ebx
cmove edx, eax
mov eax, edx
mov dword [ebp - 0xa4], edx
sar eax, 8
mov byte [ecx + 2], al
mov byte [ecx + 3], dl
add ecx, 4
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
cmp dword [ebp - 0x94], 1
mov eax, dword [ebp - 0x4c]
movzx edx, byte [eax - 1]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x64], edx
jle 0x4ad312
mov esi, dword [eax + 0x48]
or esi, edx
or esi, dword [ebp - 0xc8]
mov dword [ebp - 0x8c], esi
mov esi, dword [ebp - 0x60]
cmp dword [ebp - 0x68], edi
jne 0x4accf4
test esi, esi
jns 0x4accf4
push eax
push dword [ebp - 0x70]
lea eax, [ebx + 1]
push eax
push 0
push 0
push edx
movzx eax, cl
push eax
call fcn.004ab440
add esp, 0x1c
test eax, eax
je 0x4accf1
mov dword [ebp - 0x50], edi
jmp 0x4accea
movzx ecx, byte [edx + 1]
movzx edx, byte [edx + 2]
mov edi, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x74]
test esi, esi
je 0x4ad676
cmp esi, 1
je 0x4ad377
mov esi, dword [ebp - 0x5c]
or dword [esi + 0x44], 1
add dword [ebp - 0x50], edi
mov esi, dword [ebp - 0x94]
test esi, esi
jne 0x4ad404
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x50]
cmp ecx, 0xffffffff
jne 0x4ad3b2
mov ecx, dword [ebp - 0x58]
add al, 0x1e
mov ebx, dword [ebp - 0x64]
mov byte [ecx], al
inc ecx
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov ebx, dword [ebp - 0x64]
cmp ecx, 1
jne 0x4ad3d6
mov ecx, dword [ebp - 0x58]
add al, 0x22
mov byte [ecx], al
inc ecx
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov edx, dword [ebp - 0x58]
add al, 0x24
mov byte [edx], al
inc edx
mov eax, ecx
mov dword [ebp - 0x4c], edx
sar eax, 8
mov byte [edx + 1], cl
mov ecx, edx
add ecx, 2
mov byte [edx], al
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
cmp esi, 1
jne 0x4ad476
mov ecx, dword [ebp - 0x60]
cmp ecx, 0xffffffff
jne 0x4ad433
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x64]
add al, 0x20
mov byte [ecx], al
inc ecx
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov dword [ebp - 0x4c], eax
cmp ecx, 1
je 0x4ad676
mov edx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x64]
add dl, 0x24
mov byte [eax], dl
lea edx, [eax + 1]
lea eax, [ecx - 1]
mov dword [ebp - 0x4c], edx
dec cl
sar eax, 8
mov byte [edx + 1], cl
mov ecx, edx
add ecx, 2
mov byte [edx], al
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x74]
add al, 0x26
mov byte [ebx], al
lea eax, [ebx + 1]
mov ebx, dword [ebp - 0x94]
mov dword [ebp - 0x4c], eax
mov eax, ebx
mov esi, dword [ebp - 0x4c]
sar eax, 8
mov byte [esi], al
mov eax, esi
mov byte [eax + 1], bl
add eax, 2
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jns 0x4ad4fd
mov eax, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x64]
mov byte [eax], bl
inc eax
mov dword [ebp - 0x4c], eax
test ecx, ecx
js 0x4ad4de
mov byte [eax], cl
mov ecx, eax
mov eax, dword [ebp - 0x50]
add al, 0x1e
mov byte [ecx + 1], dl
add ecx, 2
mov byte [ecx], al
inc ecx
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x50]
add al, 0x1e
mov byte [ecx], al
inc ecx
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
cmp eax, ebx
je 0x4ad587
mov esi, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x64]
mov byte [esi], bl
inc esi
mov dword [ebp - 0x4c], esi
test ecx, ecx
js 0x4ad524
mov byte [esi], cl
mov ecx, esi
mov byte [ecx + 1], dl
add ecx, 2
mov dword [ebp - 0x4c], ecx
jmp 0x4ad527
mov ecx, dword [ebp - 0x4c]
sub eax, dword [ebp - 0x94]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0xa4], eax
cmp eax, 1
jne 0x4ad557
mov eax, dword [ebp - 0x50]
add al, 0x22
mov byte [ecx], al
inc ecx
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x50]
add cl, 0x24
sar eax, 8
mov byte [edx], cl
mov ecx, edx
mov byte [ecx + 1], al
mov eax, dword [ebp - 0x60]
mov byte [ecx + 2], al
add ecx, 3
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
mov ecx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x64]
mov byte [ecx], bl
inc ecx
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ecx
jmp 0x4ad16f
xor ecx, ecx
movzx eax, al
movzx eax, byte [eax + 0x4e0910]
add eax, ecx
add esi, eax
mov dword [ebp - 0x88], esi
mov ecx, dword [ebp - 0x4c]
sub ecx, esi
mov dword [ebp - 0x98], ecx
test ecx, ecx
jle 0x4ad676
movzx eax, byte [esi]
add eax, 0xffffffe2
cmp eax, 0x20
ja case.0x4ad5dc.31
movzx eax, byte [eax + 0x4ae9dc]
jmp dword [eax*4 + 0x4ae9a8]
mov byte [esi], 0x27
jmp 0x4ad673
mov byte [esi], 0x28
jmp 0x4ad673
mov byte [esi], 0x29
jmp 0x4ad673
mov byte [esi], 0x2a
jmp 0x4ad673
mov byte [esi], 0x41
jmp 0x4ad673
mov byte [esi], 0x42
jmp 0x4ad673
mov byte [esi], 0x43
jmp 0x4ad673
mov byte [esi], 0x44
jmp 0x4ad673
mov byte [esi], 0x34
jmp 0x4ad673
mov byte [esi], 0x35
jmp 0x4ad673
mov byte [esi], 0x36
jmp 0x4ad673
mov byte [esi], 0x37
jmp 0x4ad673
push ecx
lea eax, [esi + 3]
push esi
push eax
call dword [sym.imp.MSVCR120.dll_memmove]
mov eax, dword [ebp - 0x88]
add esp, 0xc
mov ebx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x98]
add edx, 3
mov byte [eax], 0x5c
mov ecx, edx
mov byte [ebx + 3], 0x54
sar ecx, 8
mov byte [ebx + 4], cl
mov byte [ebx + 5], dl
add ebx, 6
mov eax, dword [ebp - 0x88]
mov dword [ebp - 0x4c], ebx
mov byte [eax + 1], cl
mov eax, dword [ebp - 0x88]
mov byte [eax + 2], dl
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [ebp - 0x5c]
xor esi, esi
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0x58], esi
or dword [edi + 0x48], eax
inc ebx
jmp 0x4ac04e
mov ecx, dword [ebp - 0x70]
xor eax, eax
inc ebx
mov dword [ebp - 0x60], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x48], ebx
mov al, byte [ebx]
mov dword [ebp - 0x98], ecx
mov dword [ebp - 0x64], 0x5e
mov dword [ebp - 0x50], 0
cmp al, 0x2a
jne 0x4ad79e
mov ecx, dword [edi + 0xc]
lea edx, [ebx + 1]
movzx eax, byte [edx]
test byte [eax + ecx], 2
je 0x4ad799
mov edi, str.ACCEPT
mov dword [ebp - 0xb8], edx
mov ebx, edx
mov dword [ebp - 0x58], 0
lea ebx, [ebx]
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 2
jne 0x4ad6f0
mov al, byte [ebx]
cmp al, 0x3a
je 0x4ae72e
cmp al, 0x29
jne 0x4ae720
mov eax, ebx
xor esi, esi
sub eax, edx
mov dword [ebp - 0x98], eax
cmp dword [0x66af54], esi
jle 0x4ae720
cmp eax, dword [esi*8 + 0x66af1c]
jne 0x4ad746
push eax
push edi
push edx
call dword [sym.imp.MSVCR120.dll_strncmp]
add esp, 0xc
test eax, eax
je 0x4ad763
mov edx, dword [ebp - 0xb8]
inc edi
add edi, dword [esi*8 + 0x66af1c]
inc esi
cmp esi, dword [0x66af54]
jge 0x4ae71d
mov eax, dword [ebp - 0x98]
jmp 0x4ad727
mov ecx, dword [ebp - 0x4c]
mov al, byte [esi*8 + 0x66af20]
mov edi, dword [ebp - 0x5c]
mov byte [ecx], al
inc ecx
mov dword [ebp - 0x4c], ecx
cmp al, 0x6d
jne 0x4ad781
mov dword [edi + 0x4c], 1
cmp esi, dword [0x66af54]
jge 0x4ae71d
mov ebx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x58]
inc ebx
jmp 0x4ac04e
mov al, byte [ebx]
mov ecx, dword [ebp - 0x70]
cmp al, 0x3f
jne 0x4ae083
inc ebx
mov dword [ebp - 0x48], ebx
mov dl, byte [ebx]
movzx eax, dl
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.0x4ad7c2.34
movzx eax, byte [eax + 0x4aea3c]
jmp dword [eax*4 + 0x4aea00]
inc ebx
mov dword [ebp - 0x48], ebx
mov al, byte [ebx]
test al, al
je 0x4ad7e1
cmp al, 0x29
je 0x4ad7ef
inc ebx
mov dword [ebp - 0x48], ebx
mov al, byte [ebx]
test al, al
jne 0x4ad7d3
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x12
jmp 0x4ae8c2
cmp byte [ebx], 0
je 0x4ad7e1
mov ecx, dword [ebp - 0x4c]
inc ebx
mov esi, dword [ebp - 0x58]
jmp 0x4ac04e
mov eax, 0x5d
inc ebx
mov esi, 1
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x48], ebx
jmp 0x4ada0f
mov esi, dword [ebp - 0x50]
mov eax, 0x5d
inc ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x48], ebx
jmp 0x4ada0f
cmp byte [ebx + 1], 0x3f
mov dword [ebp - 0x64], 0x5f
jne 0x4ad852
mov al, byte [ebx + 2]
cmp al, 0x3d
je 0x4ae096
cmp al, 0x21
je 0x4ae096
cmp al, 0x3c
je 0x4ae096
mov esi, dword [ebp - 0x4c]
mov eax, 3
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x90], 0xffffffff
mov byte [esi + 3], 0x63
mov ebx, dword [ebp - 0x48]
mov al, byte [ebx + 1]
cmp al, 0x52
jne 0x4ad891
cmp byte [ebx + 2], 0x26
lea ecx, [ebx + 2]
jne 0x4ad891
mov dword [ebp - 0x48], ecx
mov byte [esi + 3], 0x64
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x68], 0xffffffff
jmp 0x4ad8cf
cmp al, 0x3c
jne 0x4ad8a2
inc ebx
mov dword [ebp - 0x68], 0x3e
mov dword [ebp - 0x48], ebx
jmp 0x4ad8cf
cmp al, 0x27
jne 0x4ad8b3
inc ebx
mov dword [ebp - 0x68], 0x27
mov dword [ebp - 0x48], ebx
jmp 0x4ad8cf
mov dword [ebp - 0x68], 0
cmp al, 0x2d
je 0x4ad8c2
cmp al, 0x2b
jne 0x4ad8cf
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
mov dword [ebp - 0x90], eax
movzx eax, byte [ebx + 1]
inc ebx
mov esi, dword [edi + 0xc]
test byte [eax + esi], 0x10
je 0x4ae786
mov dword [ebp - 0x48], ebx
xor edx, edx
movzx ecx, byte [ebx]
mov edi, ebx
mov dword [ebp - 0x58], edx
mov dword [ebp - 0xa0], edi
test byte [esi + ecx], 0x10
je 0x4ad92e
lea ebx, [ebx]
test edx, edx
js 0x4ad91b
test byte [ecx + 0x4e02e0], 4
je 0x4ad918
lea edx, [edx + edx*4]
lea edx, [edx - 0x18]
lea edx, [ecx + edx*2]
jmp 0x4ad91b
or edx, 0xffffffff
inc ebx
mov dword [ebp - 0x48], ebx
movzx ecx, byte [ebx]
test byte [esi + ecx], 0x10
jne 0x4ad900
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x58], edx
mov esi, dword [ebp - 0x68]
mov ecx, ebx
sub ecx, edi
mov dword [ebp - 0x74], ecx
test esi, esi
jle 0x4ad94b
movzx eax, byte [ebx]
inc ebx
mov dword [ebp - 0x48], ebx
cmp eax, esi
jne 0x4ae777
mov al, byte [ebx]
inc ebx
mov dword [ebp - 0x48], ebx
cmp al, 0x29
jne 0x4ae777
cmp dword [ebp - 0x7c], 0
jne 0x4ada09
mov eax, dword [ebp - 0x90]
test eax, eax
jle 0x4ad9ab
test edx, edx
jle 0x4ae73c
mov edi, dword [ebp - 0x5c]
cmp eax, 0x2d
jne 0x4ad987
mov eax, dword [edi + 0x30]
sub eax, edx
lea edx, [eax + 1]
jmp 0x4ad98a
add edx, dword [edi + 0x30]
test edx, edx
jle 0x4adf1c
cmp edx, dword [edi + 0x34]
jg 0x4adf1c
mov ebx, dword [ebp - 0x4c]
mov eax, edx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], dl
jmp 0x4ada0c
mov edx, dword [ebp - 0x5c]
xor edi, edi
mov esi, dword [edx + 0x24]
cmp edi, dword [edx + 0x28]
jge 0x4ada51
mov ebx, dword [ebp - 0xa0]
push ecx
lea eax, [esi + 2]
push eax
push ebx
call dword [sym.imp.MSVCR120.dll_strncmp]
mov edx, dword [ebp - 0x5c]
add esp, 0xc
test eax, eax
je 0x4ad9e4
add esi, dword [edx + 0x2c]
inc edi
mov ecx, dword [ebp - 0x74]
cmp edi, dword [edx + 0x28]
jl 0x4ad9c2
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x74]
cmp edi, dword [edx + 0x28]
jge 0x4ada51
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
shl eax, 8
or ecx, eax
mov edx, dword [ebp - 0x4c]
mov eax, ecx
mov byte [edx + 5], cl
sar eax, 8
mov byte [edx + 4], al
mov edi, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x50]
mov edx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x64]
xor ecx, ecx
mov eax, dword [ebp - 0x4c]
cmp ebx, 0x5c
cmovge ecx, eax
mov dword [ebp - 0x58], ecx
mov byte [eax], bl
mov edi, dword [edi + 0x48]
mov dword [ebp - 0x88], eax
mov dword [ebp - 0xb4], 0
cmp ebx, 0x59
je 0x4ae0a0
cmp ebx, 0x5a
je 0x4ae0a0
xor ecx, ecx
jmp 0x4ae0a5
mov eax, dword [ebp - 0x70]
mov edi, dword [ebp - 0xa0]
shr eax, 3
and eax, 1
push eax
push ecx
push edi
push dword [edx + 0x30]
push ebx
call fcn.004af6b0
mov ecx, eax
add esp, 0x14
test ecx, ecx
jg 0x4ad9fb
cmp dword [ebp - 0x68], 0
jne 0x4ae766
cmp byte [edi], 0x52
jne 0x4adac9
mov esi, dword [ebp - 0x74]
xor ebx, ebx
lea ecx, [ebx + 1]
cmp esi, ecx
jle 0x4adab3
movzx edx, byte [ecx + edi]
test byte [edx + 0x4e02e0], 4
je 0x4ae766
lea ebx, [ebx + ebx*4]
inc ecx
lea ebx, [ebx - 0x18]
lea ebx, [edx + ebx*2]
cmp ecx, esi
jl 0x4ada90
test ebx, ebx
jne 0x4adab8
mov ebx, 0xffff
mov edx, dword [ebp - 0x4c]
mov eax, ebx
mov byte [edx + 3], 0x64
mov byte [edx + 5], bl
jmp 0x4ada03
cmp dword [ebp - 0x74], 6
jne 0x4adaf9
push 6
push str.DEFINE
push edi
call dword [sym.imp.MSVCR120.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x4adaf9
mov edx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x50]
mov edi, dword [ebp - 0x5c]
mov byte [edx + 3], 0x65
lea edx, [eax + 1]
jmp 0x4ada12
mov ecx, dword [ebp - 0x58]
test ecx, ecx
jle 0x4ae74a
mov edi, dword [ebp - 0x5c]
cmp ecx, dword [edi + 0x34]
jg 0x4ae74a
mov edx, dword [ebp - 0x4c]
mov eax, ecx
sar eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x4ada0c
mov edx, dword [ebp - 0x60]
mov eax, 0x57
inc ebx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x48], ebx
mov esi, edx
jmp 0x4ada12
inc ebx
mov dword [ebp - 0x48], ebx
cmp byte [ebx], 0x29
jne 0x4adb5a
mov ecx, dword [ebp - 0x4c]
xor esi, esi
mov dword [ebp - 0x58], esi
mov byte [ecx], 0x6c
inc ecx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
inc ebx
jmp 0x4ac04e
mov edx, dword [ebp - 0x60]
mov esi, edx
mov dword [ebp - 0x64], 0x58
jmp 0x4ada12
mov cl, byte [ebx + 1]
mov al, cl
cmp al, 0x21
je 0x4adc38
cmp al, 0x3d
je 0x4adc21
mov eax, dword [edi + 0xc]
movzx ecx, cl
test byte [ecx + eax], 0x10
je 0x4ae794
cmp dl, 0x3c
mov eax, 0x3e
mov edx, dword [ebp - 0x5c]
mov esi, 0x27
cmove esi, eax
inc ebx
mov dword [ebp - 0x48], ebx
mov edi, ebx
mov dword [ebp - 0xa0], edi
mov ecx, dword [edx + 0xc]
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x4adbcd
jmp 0x4adbc0
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x4adbc0
mov eax, ebx
sub eax, edi
cmp dword [ebp - 0x7c], 0
mov dword [ebp - 0x68], eax
je 0x4add37
movzx eax, byte [ebx]
cmp eax, esi
jne 0x4ae7cd
mov edi, edx
cmp dword [edi + 0x28], 0x2710
jge 0x4ae7bf
mov esi, dword [ebp - 0x68]
lea eax, [esi + 3]
cmp eax, dword [edi + 0x2c]
jle 0x4ade46
mov dword [edi + 0x2c], eax
cmp esi, 0x20
jle 0x4ade46
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x30
jmp 0x4ae8c2
mov edx, dword [ebp - 0x60]
add ebx, 2
mov dword [ebp - 0x64], 0x59
mov esi, edx
mov dword [ebp - 0x48], ebx
jmp 0x4ada12
mov edx, dword [ebp - 0x60]
add ebx, 2
mov dword [ebp - 0x64], 0x5a
mov esi, edx
mov dword [ebp - 0x48], ebx
jmp 0x4ada12
mov edx, dword [ebp - 0x60]
inc ebx
mov dword [ebp - 0x64], 0x5c
mov esi, edx
mov dword [ebp - 0x48], ebx
jmp 0x4ada12
mov eax, dword [ebp - 0x4c]
xor ecx, ecx
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xcc], 1
mov byte [eax], 0x52
inc eax
mov ebx, dword [ebp - 0x48]
inc ebx
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], ebx
movzx edx, byte [ebx]
test byte [edx + 0x4e02e0], 4
je 0x4adcaf
inc ebx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
mov dword [ebp - 0x48], ebx
lea ecx, [edx + ecx*2]
movzx edx, byte [ebx]
test byte [edx + 0x4e02e0], 4
jne 0x4adc93
mov eax, dword [ebp - 0x4c]
cmp byte [ebx], 0x29
jne 0x4ae7b1
cmp ecx, 0xff
jg 0x4ae7a3
mov byte [eax], cl
xor esi, esi
mov eax, dword [ebp - 0x48]
sub eax, dword [edi + 0x18]
mov ecx, dword [ebp - 0x4c]
inc eax
sar eax, 8
mov dword [ebp - 0x58], esi
mov byte [ecx + 1], al
mov al, byte [ebp - 0x48]
sub al, byte [edi + 0x18]
inc al
mov word [ecx + 3], 0
mov byte [ecx + 2], al
add ecx, 5
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
inc ebx
jmp 0x4ac04e
inc ebx
mov dword [ebp - 0x48], ebx
mov dl, byte [ebx]
cmp dl, 0x3d
je 0x4add22
cmp dl, 0x3e
je 0x4add22
cmp dl, 0x3c
je case.0x4ad7c2.39
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x29
jmp 0x4ae8c2
xor eax, eax
cmp dl, 0x3e
mov edx, 0x29
sete al
mov dword [ebp - 0x74], eax
jmp 0x4ae351
mov edi, dword [edx + 0x24]
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov ecx, dword [edx + 0x28]
mov dword [ebp - 0x90], ecx
test ecx, ecx
jle 0x4ade14
mov ecx, dword [ebp - 0xa0]
lea edx, [edi + 2]
mov esi, eax
sub esi, 4
jb 0x4add71
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x4add76
add ecx, 4
add edx, 4
sub esi, 4
jae 0x4add60
cmp esi, 0xfffffffc
je 0x4addaa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4adda3
cmp esi, 0xfffffffd
je 0x4addaa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4adda3
cmp esi, 0xfffffffe
je 0x4addaa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4adda3
cmp esi, 0xffffffff
je 0x4addaa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4addaa
sbb eax, eax
or eax, 1
jmp 0x4addac
xor eax, eax
mov esi, dword [ebp - 0x68]
test eax, eax
jne 0x4addd0
cmp byte [edi + esi + 2], al
jne 0x4addef
test dword [ebp - 0x70], 0x80000
jne 0x4addd2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x2b
jmp 0x4ae8c2
js 0x4addef
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x74]
inc eax
mov dword [ebp - 0x74], eax
add edi, dword [edx + 0x2c]
cmp eax, dword [ebp - 0x90]
jge 0x4ade17
mov eax, dword [ebp - 0x68]
jmp 0x4add50
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x90]
sub edx, dword [ebp - 0x74]
mov eax, dword [eax + 0x2c]
imul edx, eax
add eax, edi
push edx
push edi
push eax
call dword [sym.imp.MSVCR120.dll_memmove]
mov edx, dword [ebp - 0x5c]
add esp, 0xc
jmp 0x4ade17
mov esi, dword [ebp - 0x68]
mov eax, dword [edx + 0x30]
inc eax
sar eax, 8
mov byte [edi], al
mov al, byte [edx + 0x30]
inc al
push esi
push dword [ebp - 0xa0]
mov byte [edi + 1], al
lea eax, [edi + 2]
push eax
call sub.MSVCR120.dll_memcpy
mov byte [edi + esi + 2], 0
add esp, 0xc
mov ebx, dword [ebp - 0x48]
mov edi, dword [ebp - 0x5c]
inc ebx
inc dword [edi + 0x28]
mov dword [ebp - 0x48], ebx
inc dword [edi + 0x30]
mov edx, dword [ebp - 0x4c]
mov eax, dword [edi + 0x30]
mov esi, dword [ebp - 0x50]
sar eax, 8
mov byte [edx + 3], al
mov al, byte [edi + 0x30]
mov byte [edx + 4], al
mov edx, 2
jmp 0x4ada12
mov edx, 0x29
mov dword [ebp - 0x74], 1
jmp 0x4ae351
inc ebx
mov dword [ebp - 0x48], ebx
mov dl, byte [ebx]
movzx esi, dl
cmp esi, 0x2b
jne 0x4adeac
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
test byte [eax + 0x4e02e0], 4
jne 0x4adec6
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x3f
jmp 0x4ae8c2
cmp esi, 0x2d
jne 0x4adec6
movzx eax, byte [ebx + 1]
test byte [eax + 0x4e02e0], 4
je case.0x4ad7c2.34
inc ebx
mov dword [ebp - 0x48], ebx
movzx edx, byte [ebx]
xor ecx, ecx
mov dword [ebp - 0x68], ecx
test byte [edx + 0x4e02e0], 4
je 0x4adef3
inc ebx
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
mov dword [ebp - 0x48], ebx
lea ecx, [edx + ecx*2]
movzx edx, byte [ebx]
test byte [edx + 0x4e02e0], 4
jne 0x4aded7
mov dword [ebp - 0x68], ecx
cmp byte [ebx], 0x29
jne 0x4ae7db
cmp esi, 0x2d
jne 0x4adf2a
test ecx, ecx
je 0x4ae73c
mov eax, dword [edi + 0x30]
sub eax, ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x68], ecx
test ecx, ecx
jg 0x4ae449
mov eax, dword [ebp - 0x54]
mov dword [eax], 0xf
jmp 0x4ae8c2
cmp esi, 0x2b
jne 0x4ae449
test ecx, ecx
je 0x4ae73c
add ecx, dword [edi + 0x30]
mov dword [ebp - 0x68], ecx
jmp 0x4ae449
xor eax, eax
lea ecx, [ebp - 0x90]
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x90], eax
cmp dl, 0x29
je 0x4adfce
nop
cmp dl, 0x3a
je 0x4adfc0
movzx eax, dl
inc ebx
sub eax, 0x2d
mov dword [ebp - 0x48], ebx
cmp eax, 0x4b
ja case.0x4adf7f.46
movzx eax, byte [eax + 0x4aeabc]
jmp dword [eax*4 + 0x4aea98]
lea ecx, [ebp - 0xa0]
jmp 0x4adfb9
or dword [ecx], 0x80000
or dword [edi + 0x44], 0x10
jmp 0x4adfb9
or dword [ecx], 1
jmp 0x4adfb9
or dword [ecx], 2
jmp 0x4adfb9
or dword [ecx], 4
jmp 0x4adfb9
or dword [ecx], 8
jmp 0x4adfb9
or dword [ecx], 0x200
jmp 0x4adfb9
or dword [ecx], 0x40
mov dl, byte [ebx]
cmp dl, 0x29
jne 0x4adf60
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0xa0]
jmp 0x4adfd0
xor ecx, ecx
mov esi, dword [ebp - 0x70]
not eax
or ecx, esi
and ecx, eax
cmp byte [ebx], 0x29
mov dword [ebp - 0x98], ecx
jne 0x4ae06e
mov eax, dword [edi + 0x14]
mov edx, dword [ebp - 0x4c]
add eax, 3
cmp edx, eax
jne 0x4ae015
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4ae001
cmp dword [eax], 6
jne 0x4ae015
xor esi, esi
mov dword [edi + 0x40], ecx
mov dword [ebp - 0x70], ecx
inc ebx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x58], esi
jmp 0x4ac04e
mov eax, ecx
xor eax, esi
test al, 7
je 0x4ae030
mov al, cl
mov byte [edx], 0x18
and al, 7
mov byte [edx + 1], al
add edx, 2
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0x70], ecx
mov dword [eax], ecx
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [ebp - 0xe0], eax
xor eax, 1
mov dword [ebp - 0xe8], eax
mov eax, ecx
and eax, 1
shl eax, 8
xor esi, esi
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0x58], esi
mov ecx, dword [ebp - 0x4c]
inc ebx
jmp 0x4ac04e
mov edx, dword [ebp - 0x60]
inc ebx
mov dword [ebp - 0x64], 0x5d
mov esi, edx
mov dword [ebp - 0x48], ebx
jmp 0x4ada12
test ecx, 0x1000
je 0x4ade4d
mov dword [ebp - 0x64], 0x5d
mov edx, dword [ebp - 0x60]
mov esi, edx
jmp 0x4ada12
mov ecx, 1
cmp dword [ebp - 0x7c], 0
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb8], 0
cmove eax, dword [ebp - 0xb8]
push eax
push dword [ebp - 0x5c]
lea eax, [ebp - 0xc0]
push dword [ebp - 0xdc]
push eax
lea eax, [ebp - 0xd8]
push eax
push edx
push esi
push ecx
push dword [ebp - 0x54]
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x70]
and eax, 7
push eax
push dword [ebp - 0x98]
call fcn.004aeb10
add esp, 0x34
test eax, eax
je 0x4ae69e
cmp ebx, 0x5f
jne 0x4ae16f
cmp dword [ebp - 0x7c], 0
jne 0x4ae16f
mov ebx, dword [ebp - 0x4c]
xor esi, esi
mov edx, ebx
jmp 0x4ae120
movzx ecx, byte [edx + 1]
inc esi
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x54
jne 0x4ae120
cmp byte [ebx + 3], 0x65
jne 0x4ae14b
cmp esi, 1
jg 0x4ae7f8
mov edx, 0x65
jmp 0x4ae172
cmp esi, 2
jg 0x4ae809
cmp esi, 1
jne 0x4ae16f
mov edx, dword [ebp - 0x64]
or eax, 0xffffffff
or ecx, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xd8], ecx
jmp 0x4ae17e
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xc0]
mov ebx, dword [ebp - 0x48]
cmp byte [ebx], 0x29
jne 0x4ae81a
mov esi, dword [ebp - 0x7c]
test esi, esi
je 0x4ae1da
mov edx, dword [esi]
mov esi, dword [ebp - 0xb4]
mov ecx, dword [ebp - 0xb0]
sub ecx, edx
lea eax, [esi - 6]
cmp ecx, eax
jl 0x4ae687
mov ecx, dword [ebp - 0x7c]
lea eax, [esi - 6]
mov edi, dword [ebp - 0x5c]
add eax, edx
mov esi, dword [ebp - 0x58]
mov dword [ecx], eax
mov ecx, dword [ebp - 0x4c]
mov dword [ecx], 0x5403005d
mov word [ecx + 4], 0x300
add ecx, 6
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
inc ebx
jmp 0x4ac04e
mov esi, dword [ebp - 0x88]
mov dword [ebp - 0x4c], esi
cmp edx, 0x65
je 0x4ae23f
mov esi, dword [ebp - 0x8c]
mov dword [ebp - 0xac], esi
mov esi, dword [ebp - 0x78]
mov dword [ebp - 0x84], esi
mov dword [ebp - 0xd0], 0
cmp edx, 0x5c
jl 0x4ae262
cmp esi, 0xfffffffe
jne 0x4ae24e
test ecx, ecx
js 0x4ae224
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xd0], 1
jmp 0x4ae22b
mov dword [ebp - 0x78], 0xffffffff
mov dword [ebp - 0x84], 0xffffffff
test eax, eax
js 0x4ae23f
mov dword [ebp - 0x8c], eax
mov edi, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x4c]
mov esi, dword [ebp - 0x58]
inc ebx
jmp 0x4ac04e
test ecx, ecx
js 0x4ae235
test eax, eax
jns 0x4ae239
mov eax, ecx
or eax, edi
mov dword [ebp - 0xc0], eax
jmp 0x4ae235
cmp edx, 0x57
jne 0x4ae23f
jmp 0x4ae235
mov esi, dword [ebp - 0x54]
lea eax, [ebp - 0x48]
push 0
push dword [ebp - 0x70]
mov dword [ebp - 0xc4], ebx
push dword [edi + 0x30]
push esi
push eax
call fcn.004abab0
add esp, 0x14
cmp dword [esi], 0
jne 0x4ae69e
test eax, eax
jns 0x4ae609
mov ecx, eax
neg ecx
cmp ecx, 0x19
jne 0x4ae2d2
mov ebx, dword [ebp - 0x48]
cmp byte [ebx + 1], 0x5c
jne 0x4ae2bf
cmp byte [ebx + 2], 0x45
jne 0x4ae2bf
mov ecx, dword [ebp - 0x4c]
add ebx, 2
mov esi, dword [ebp - 0x58]
inc ebx
jmp 0x4ac04e
mov ecx, dword [ebp - 0x4c]
inc ebx
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x6c], 1
jmp 0x4ac04e
cmp ecx, 0x18
je 0x4ae5fa
mov edx, dword [ebp - 0x78]
cmp edx, 0xfffffffe
jne 0x4ae2f6
cmp ecx, 5
jle 0x4ae2f6
cmp ecx, 0x16
mov ebx, 0xffffffff
cmovl edx, ebx
mov dword [ebp - 0x78], edx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x84], edx
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0xac], edx
cmp ecx, 0x1a
jne 0x4ae543
mov dl, byte [ebx + 1]
cmp dl, 0x3c
je 0x4ae32a
cmp dl, 0x27
je 0x4ae32a
cmp dl, 0x7b
jne 0x4ae543
inc ebx
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x48], ebx
mov al, byte [ebx]
cmp al, 0x3c
jne 0x4ae342
mov edx, 0x3e
jmp 0x4ae351
cmp al, 0x27
mov edx, 0x7d
mov eax, 0x27
cmove edx, eax
mov ecx, dword [edi + 0xc]
inc ebx
mov dword [ebp - 0x48], ebx
mov esi, ebx
mov dword [ebp - 0x90], esi
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x4ae37d
lea esp, [esp]
inc ebx
mov dword [ebp - 0x48], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x4ae370
mov ecx, ebx
sub ecx, esi
cmp dword [ebp - 0x7c], 0
mov dword [ebp - 0x98], ecx
je 0x4ae3b3
test ecx, ecx
je 0x4ae828
movzx eax, byte [ebx]
cmp eax, edx
jne 0x4ae7cd
cmp ecx, 0x20
jg 0x4adc13
xor ecx, ecx
mov dword [ebp - 0x68], ecx
jmp 0x4ae43f
mov eax, dword [ebp - 0x5c]
mov esi, dword [edi + 0x24]
xor edi, edi
cmp edi, dword [eax + 0x28]
jge 0x4ae412
mov ebx, dword [ebp - 0x90]
push ecx
lea eax, [esi + 2]
push eax
push ebx
call dword [sym.imp.MSVCR120.dll_strncmp]
mov ecx, dword [ebp - 0x98]
add esp, 0xc
test eax, eax
jne 0x4ae3e5
cmp byte [esi + ecx + 2], al
je 0x4ae3f3
mov eax, dword [ebp - 0x5c]
inc edi
add esi, dword [eax + 0x2c]
cmp edi, dword [eax + 0x28]
jl 0x4ae3c6
jmp 0x4ae3f6
mov eax, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x48]
cmp edi, dword [eax + 0x28]
jge 0x4ae412
movzx eax, byte [esi]
movzx ecx, byte [esi + 1]
mov edi, dword [ebp - 0x5c]
shl eax, 8
or ecx, eax
mov dword [ebp - 0x68], ecx
jmp 0x4ae43f
mov eax, dword [ebp - 0x70]
mov edi, dword [ebp - 0x5c]
shr eax, 3
and eax, 1
push eax
push ecx
push dword [ebp - 0x90]
push dword [edi + 0x30]
push ebx
call fcn.004af6b0
mov ecx, eax
add esp, 0x14
mov dword [ebp - 0x68], ecx
test ecx, ecx
jle 0x4ae766
cmp dword [ebp - 0x74], 0
je 0x4ae54f
cmp dword [ebp - 0x7c], 0
mov edx, dword [ebp - 0x4c]
mov esi, edx
mov ebx, dword [edi + 0x14]
mov dword [ebp - 0x58], esi
jne 0x4ae4f5
mov byte [edx], 0
test ecx, ecx
je 0x4ae47a
push ecx
push 0
push dword [edi + 0x14]
call fcn.004af210
mov ecx, dword [ebp - 0x68]
add esp, 0xc
mov ebx, eax
mov edx, esi
test ebx, ebx
jne 0x4ae4cd
mov eax, dword [ebp - 0x70]
shr eax, 3
and eax, 1
push eax
push ecx
push ebx
push dword [edi + 0x30]
push dword [ebp - 0x48]
call fcn.004af6b0
add esp, 0x14
test eax, eax
js 0x4ae766
mov edx, dword [ebp - 0x4c]
mov ecx, edx
sub ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x20]
add ecx, 4
mov ebx, dword [ebp - 0x68]
add ebx, dword [edi + 0x14]
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [edi + 0x14]
mov eax, dword [edi + 0x20]
add cl, 4
mov byte [eax + 1], cl
add dword [edi + 0x20], 2
jmp 0x4ae4f5
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x4ae4f5
push ecx
push dword [ebp - 0xdc]
push edx
push ebx
call fcn.004aedd0
add esp, 0x10
test eax, eax
jne 0x4ae836
mov ecx, dword [ebp - 0x4c]
mov eax, ebx
mov dword [ecx], 0x5106005c
sub eax, dword [edi + 0x14]
sar eax, 8
mov byte [ecx + 4], al
sub bl, byte [edi + 0x14]
mov byte [ecx + 5], bl
mov word [ecx + 6], 0x54
mov byte [ecx + 8], 6
add ecx, 9
cmp dword [ebp - 0x78], 0xfffffffe
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0xb4], 9
jne 0x4ae248
mov dword [ebp - 0x78], 0xffffffff
inc ebx
jmp 0x4ac04e
cmp ecx, 0x1b
jl 0x4ae5a3
mov ecx, 0xffffffe5
sub ecx, eax
mov eax, dword [ebp - 0x78]
mov edx, 0xffffffff
cmp eax, 0xfffffffe
cmove eax, edx
mov edx, dword [ebp - 0x4c]
mov dword [ebp - 0x78], eax
mov esi, edx
mov eax, ecx
mov dword [ebp - 0x58], esi
sar eax, 8
mov byte [edx], 0x50
mov byte [edx + 1], al
mov eax, 1
mov byte [edx + 2], cl
add edx, 3
mov dword [ebp - 0x4c], edx
cmp ecx, 0x20
jge 0x4ae588
shl eax, cl
or dword [edi + 0x3c], eax
mov ebx, dword [ebp - 0x48]
cmp ecx, dword [edi + 0x38]
jle 0x4ae065
mov dword [edi + 0x38], ecx
inc ebx
mov ecx, dword [ebp - 0x4c]
jmp 0x4ac04e
cmp ecx, 0x15
je 0x4ae844
cmp ecx, 0xe
je 0x4ae844
cmp ecx, 0xf
je 0x4ae844
cmp ecx, 5
jle 0x4ae5e1
cmp ecx, 0x16
jge 0x4ae5e1
mov ecx, dword [ebp - 0x4c]
neg al
mov esi, ecx
mov dword [ebp - 0x58], esi
mov byte [ecx], al
inc ecx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
inc ebx
jmp 0x4ac04e
mov ecx, dword [ebp - 0x4c]
neg al
xor esi, esi
mov dword [ebp - 0x58], esi
mov byte [ecx], al
inc ecx
mov ebx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
inc ebx
jmp 0x4ac04e
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
inc ebx
mov esi, dword [ebp - 0x58]
jmp 0x4ac04e
mov dl, al
mov ecx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x8c]
test byte [ebp - 0x70], 1
mov esi, ecx
mov dword [ebp - 0x58], esi
setne al
add al, 0x1b
mov byte [ecx], al
mov byte [ecx + 1], dl
add ecx, 2
mov dword [ebp - 0x4c], ecx
cmp dl, 0xd
je 0x4ae637
cmp dl, 0xa
jne 0x4ae63b
or dword [edi + 0x44], 0x20
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xac], ebx
mov ebx, dword [ebp - 0x48]
cmp eax, 0xfffffffe
jne 0x4ae668
movzx eax, dl
or eax, dword [ebp - 0xc8]
inc ebx
mov dword [ebp - 0x84], 0xffffffff
mov dword [ebp - 0x78], eax
jmp 0x4ac04e
mov dword [ebp - 0x84], eax
movzx eax, byte [ecx - 1]
or eax, dword [edi + 0x48]
or eax, dword [ebp - 0xc8]
inc ebx
mov dword [ebp - 0x8c], eax
jmp 0x4ac04e
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x14
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x1e
mov ebx, dword [ebp - 0x48]
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x1f
jmp 0x4ae8c2
mov dword [ecx], 7
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 8
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 6
jmp 0x4ae8c2
cmp byte [ebx + 1], 0x3a
mov ecx, 0xd
mov eax, 0x1f
cmove eax, ecx
mov ecx, dword [ebp - 0x54]
mov dword [ecx], eax
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0xb
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x37
jmp 0x4ae8c2
mov dword [edi], 9
jmp 0x4ae8c2
mov ebx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x3c
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x3b
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x3a
jmp 0x4ae8c2
mov ebx, dword [ebp - 0x48]
test ecx, ecx
mov ecx, dword [ebp - 0x54]
mov eax, 0xf
mov edx, 0x23
cmove eax, edx
mov dword [ecx], eax
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x48]
mov dword [eax], 0xf
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
dec ebx
mov dword [eax], 0x1a
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x1c
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
inc ebx
mov dword [eax], 0x18
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x26
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x27
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x31
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x2a
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x1d
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
dec ebx
mov dword [eax], 0xc
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x48]
mov dword [eax], 0x36
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x48]
mov dword [eax], 0x1b
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0xe
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x3e
jmp 0x4ae8c2
mov eax, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x48]
mov dword [eax], 0x28
jmp 0x4ae8c2
mov dword [esi], 0x2d
jmp 0x4ae8c2
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebp - 0x78]
mov esi, dword [ebp - 0x7c]
mov dword [edx], eax
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x8c]
mov dword [edx], eax
mov eax, dword [ebp - 0xf4]
mov dword [eax], ecx
mov eax, dword [ebp - 0xe4]
mov dword [eax], ebx
test esi, esi
je 0x4ae8a3
mov edx, dword [ebp - 0x4c]
mov eax, edx
mov ecx, dword [esi]
mov edi, dword [ebp - 0xbc]
sub eax, edi
sub dword [ebp - 0xb0], ecx
cmp dword [ebp - 0xb0], eax
jl 0x4ae687
sub ecx, edi
add ecx, edx
mov dword [esi], ecx
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004bb11e
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x54]
mov dword [eax], 0x34
mov eax, dword [ebp - 0xe4]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [eax], ebx
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.004bb11e
mov esp, ebp
pop ebp
ret