Function at 0x4ca3c4
Capabilities:
Authenticate hmac
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe50
push ebx
push esi
push edi
mov ebx, dword [ebp + 0x24]
xor eax, eax
mov dword [ebp - 0xc], eax
xor edx, edx
mov dword [ebp - 0x10], edx
xor ecx, ecx
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax]
mov dword [ebp - 0x3c], edx
xor ecx, ecx
mov dword [ebp - 0x40], ecx
xor eax, eax
mov dword [ebp - 0x44], eax
mov edx, dword [ebp + 0xc]
mov edi, dword [edx]
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x4c], edi
xor eax, eax
mov dword [ebp - 0x54], eax
xor edx, edx
mov dword [ebp - 0x58], edx
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov dword [ebp - 0x5c], eax
xor edx, edx
mov dword [ebp - 0x64], edx
xor ecx, ecx
mov dword [ebp - 0x68], ecx
xor eax, eax
mov dword [ebp - 0x6c], eax
xor edx, edx
mov dword [ebp - 0x70], edx
xor ecx, ecx
mov dword [ebp - 0x74], ecx
test byte [ebp - 0x3b], 2
setne al
and eax, 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
xor edx, 1
mov dword [ebp - 0x1c], edx
mov ecx, 0xfffffffe
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], ecx
test byte [ebp - 0x3c], 1
je 0x4ca45e
mov eax, 0x100
jmp 0x4ca460
xor eax, eax
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x5c]
movzx esi, byte [edx]
cmp dword [ebp + 0x28], 0
je 0x4ca4fa
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp edi, eax
jbe 0x4ca48d
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x4cd316
cmp edi, dword [ebp - 0x48]
jae 0x4ca495
mov edi, dword [ebp - 0x48]
mov eax, dword [ebp + 0x28]
mov edx, 0x7fffffeb
sub edx, dword [eax]
mov ecx, edi
sub ecx, dword [ebp - 0x48]
cmp edx, ecx
jge 0x4ca4b6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4cd316
mov edx, edi
sub edx, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x28]
add dword [ecx], edx
cmp dword [ebp - 0x64], 0
je 0x4ca4f2
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x4c]
jbe 0x4ca4f5
mov edx, edi
sub edx, dword [ebp - 0x64]
push edx
push dword [ebp - 0x64]
push dword [ebp - 0x4c]
call fcn.004d485c
add esp, 0xc
mov ecx, dword [ebp - 0x64]
sub ecx, dword [ebp - 0x4c]
sub edi, ecx
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x64], eax
jmp 0x4ca4f5
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], edi
jmp 0x4ca515
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp eax, dword [ebx + 0x20]
jae 0x4ca515
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x4cd316
cmp dword [ebp - 0x54], 0
je 0x4ca57b
test esi, esi
je 0x4ca57b
cmp esi, 0x5c
jne 0x4ca53a
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x45
jne 0x4ca53a
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x4cd30e
cmp dword [ebp - 0x68], 0
je 0x4ca55a
cmp dword [ebp + 0x28], 0
jne 0x4ca555
push ebx
push dword [ebp - 0x5c]
push dword [ebp - 0x68]
call fcn.004c9c04
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x68], edx
test byte [ebp - 0x3b], 0x40
je 0x4cd23d
mov dword [ebp - 0x68], edi
push ebx
push dword [ebp - 0x5c]
push edi
call fcn.004c9bce
add esp, 0xc
mov edi, eax
jmp 0x4cd23d
cmp esi, 0x2a
je 0x4ca5a2
cmp esi, 0x2b
je 0x4ca5a2
cmp esi, 0x3f
je 0x4ca5a2
cmp esi, 0x7b
jne 0x4ca59e
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call fcn.004c9123
pop ecx
test eax, eax
jne 0x4ca5a2
xor eax, eax
jmp 0x4ca5a7
mov eax, 1
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x4ca5e1
cmp dword [ebp - 0x68], 0
je 0x4ca5e1
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x40], 0xffffffff
test edx, edx
jg 0x4ca5e1
cmp dword [ebp + 0x28], 0
jne 0x4ca5dc
push ebx
push dword [ebp - 0x5c]
push dword [ebp - 0x68]
call fcn.004c9c04
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x68], ecx
test byte [ebp - 0x3c], 8
je 0x4ca68d
mov eax, dword [ebx + 0xc]
test byte [eax + esi], 1
jne 0x4cd30e
cmp esi, 0x23
jne 0x4ca68d
jmp 0x4ca674
cmp dword [ebx + 0x50], 0
je 0x4ca638
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebx + 0x1c]
jae 0x4ca62d
push dword [ebp - 0x70]
lea ecx, [ebx + 0x54]
push ecx
push dword [ebx + 0x1c]
push dword [ebx + 0x50]
push dword [ebp - 0x5c]
call fcn.004d17b0
add esp, 0x14
test eax, eax
jne 0x4ca631
xor eax, eax
jmp 0x4ca667
mov eax, 1
jmp 0x4ca667
mov edx, dword [ebx + 0x1c]
sub edx, dword [ebx + 0x54]
cmp edx, dword [ebp - 0x5c]
jb 0x4ca65e
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, byte [ebx + 0x58]
jne 0x4ca65e
cmp dword [ebx + 0x54], 1
je 0x4ca662
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 0x59]
je 0x4ca662
xor eax, eax
jmp 0x4ca667
mov eax, 1
test eax, eax
je 0x4ca674
mov edx, dword [ebx + 0x54]
dec edx
add dword [ebp - 0x5c], edx
jmp 0x4ca67f
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
jne 0x4ca603
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
jne 0x4cd30e
xor esi, esi
test byte [ebp - 0x3b], 0x40
je 0x4ca6ae
cmp dword [ebp - 0x84], 0
jne 0x4ca6ae
mov dword [ebp - 0x68], edi
push ebx
push dword [ebp - 0x5c]
push edi
call fcn.004c9bce
add esp, 0xc
mov edi, eax
mov eax, esi
cmp eax, 0x3f
jg 0x4ca6fc
je 0x4cb1c2
cmp eax, 0x29
jg 0x4ca6de
je 0x4ca734
sub eax, 1
jb 0x4ca734
sub eax, 0x23
je 0x4ca7ab
sub eax, 4
je 0x4cbd19
jmp 0x4cd23d
sub eax, 0x2a
je 0x4cb1a4
dec eax
je 0x4cb1b2
sub eax, 3
je 0x4ca7b9
jmp 0x4cd23d
cmp eax, 0x5e
jg 0x4ca723
je 0x4ca78a
sub eax, 0x5b
je 0x4ca801
dec eax
je 0x4ccf58
dec eax
je 0x4ca7e9
jmp 0x4cd23d
sub eax, 0x7b
je 0x4cb16e
dec eax
je 0x4ca734
jmp 0x4cd23d
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp - 0x20]
mov dword [edx], ecx
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp - 0x24]
mov dword [eax], edx
mov ecx, dword [ebp + 0xc]
mov dword [ecx], edi
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 0x5c]
mov dword [eax], edx
cmp dword [ebp + 0x28], 0
je 0x4ca780
mov ecx, dword [ebp + 0x28]
mov eax, 0x7fffffeb
sub eax, dword [ecx]
mov edx, edi
sub edx, dword [ebp - 0x48]
cmp eax, edx
jge 0x4ca778
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x4cd316
sub edi, dword [ebp - 0x48]
mov eax, dword [ebp + 0x28]
add dword [eax], edi
mov eax, 1
jmp 0x4cd320
test byte [ebp - 0x3c], 2
je 0x4ca79d
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4ca79d
mov dword [ebp - 0x20], 0xffffffff
xor edx, edx
mov dword [ebp - 0x64], edx
mov byte [edi], 0x1a
inc edi
jmp 0x4cd30e
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov byte [edi], 0x1b
inc edi
jmp 0x4cd30e
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4ca7c6
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x64], edi
test byte [ebp - 0x3c], 4
je 0x4ca7df
mov cl, 0xd
jmp 0x4ca7e1
mov cl, 0xc
mov byte [edi], cl
inc edi
jmp 0x4cd30e
test byte [ebx + 0x43], 2
je 0x4cd23d
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x40
jmp 0x4cd316
mov dword [ebp - 0x64], edi
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3a
je 0x4ca81f
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x2e
je 0x4ca81f
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3d
jne 0x4ca851
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp - 0x5c]
call fcn.004c9a97
add esp, 8
test eax, eax
je 0x4ca851
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3a
jne 0x4ca842
mov edx, 0xd
jmp 0x4ca847
mov edx, 0x1f
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
jmp 0x4cd316
xor ecx, ecx
mov dword [ebp - 0x78], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
movzx esi, byte [eax]
cmp esi, 0x5c
jne 0x4ca890
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x45
jne 0x4ca872
inc dword [ebp - 0x5c]
jmp 0x4ca856
push 3
push 0x67c431
mov edx, dword [ebp - 0x5c]
inc edx
push edx
call fcn.004d4b24
add esp, 0xc
test eax, eax
jne 0x4ca8a4
add dword [ebp - 0x5c], 3
jmp 0x4ca856
cmp dword [ebp - 0x78], 0
jne 0x4ca8a4
cmp esi, 0x5e
jne 0x4ca8a4
mov dword [ebp - 0x78], 1
jmp 0x4ca856
cmp esi, 0x5d
jne 0x4ca8d6
test byte [ebx + 0x43], 2
je 0x4ca8d6
cmp dword [ebp - 0x78], 0
je 0x4ca8b9
mov cl, 0xd
jmp 0x4ca8bb
mov cl, 0x6d
mov byte [edi], cl
inc edi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4ca8cb
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x4cd30e
xor edx, edx
mov dword [ebp - 0x7c], edx
xor eax, eax
mov dword [ebp - 0x90], eax
mov dword [ebp - 0x94], 0xffffffff
push 0x20
push 0
lea edx, [ebp - 0x18c]
push edx
call fcn.004d48a8
add esp, 0xc
test esi, esi
je 0x4cb0a1
cmp dword [ebp - 0x54], 0
je 0x4ca931
cmp esi, 0x5c
jne 0x4cae66
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x45
jne 0x4cae66
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x4cb081
cmp esi, 0x5b
jne 0x4cab30
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3a
je 0x4ca959
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x2e
je 0x4ca959
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3d
jne 0x4cab30
lea edx, [ebp - 0x60]
push edx
push dword [ebp - 0x5c]
call fcn.004c9a97
add esp, 8
test eax, eax
je 0x4cab30
xor ecx, ecx
mov dword [ebp - 0xc4], ecx
mov eax, dword [ebx + 8]
mov dword [ebp - 0xd4], eax
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3a
je 0x4ca998
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1f
jmp 0x4cd316
add dword [ebp - 0x5c], 2
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x5e
jne 0x4ca9b8
mov dword [ebp - 0xc4], 1
mov dword [ebp - 0x7c], 1
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x60]
sub edx, dword [ebp - 0x5c]
push edx
push dword [ebp - 0x5c]
call fcn.004c9ae4
add esp, 8
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jge 0x4ca9e7
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1e
jmp 0x4cd316
test byte [ebp - 0x3c], 1
je 0x4ca9fe
cmp dword [ebp - 0xc8], 2
jg 0x4ca9fe
xor eax, eax
mov dword [ebp - 0xc8], eax
mov edx, dword [ebp - 0xc8]
lea edx, [edx + edx*2]
mov dword [ebp - 0xc8], edx
push 0x20
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx*4 + 0x67b8d8]
add eax, dword [ebp - 0xd4]
push eax
lea edx, [ebp - 0x1ac]
push edx
call fcn.004d4838
add esp, 0xc
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx*4 + 0x67b8dc]
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0xc8]
mov ecx, dword [edx*4 + 0x67b8e0]
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0xcc], 0
jl 0x4caab0
cmp dword [ebp - 0xd0], 0
jl 0x4caa8d
xor esi, esi
mov eax, dword [ebp - 0xd4]
lea edx, [eax + esi]
mov ecx, dword [ebp - 0xcc]
mov al, byte [edx + ecx]
or byte [ebp + esi - 0x1ac], al
inc esi
cmp esi, 0x20
jl 0x4caa6c
jmp 0x4caab0
xor esi, esi
mov eax, dword [ebp - 0xd4]
lea edx, [eax + esi]
mov ecx, dword [ebp - 0xcc]
mov al, byte [edx + ecx]
not al
and byte [ebp + esi - 0x1ac], al
inc esi
cmp esi, 0x20
jl 0x4caa8f
cmp dword [ebp - 0xd0], 0
jge 0x4caabf
neg dword [ebp - 0xd0]
cmp dword [ebp - 0xd0], 1
jne 0x4caad1
and byte [ebp - 0x1ab], 0xc3
jmp 0x4caae1
cmp dword [ebp - 0xd0], 2
jne 0x4caae1
and byte [ebp - 0x1a1], 0x7f
cmp dword [ebp - 0xc4], 0
je 0x4cab04
xor esi, esi
mov al, byte [ebp + esi - 0x1ac]
not al
or byte [ebp + esi - 0x18c], al
inc esi
cmp esi, 0x20
jl 0x4caaec
jmp 0x4cab1a
xor esi, esi
mov al, byte [ebp + esi - 0x1ac]
or byte [ebp + esi - 0x18c], al
inc esi
cmp esi, 0x20
jl 0x4cab06
mov edx, dword [ebp - 0x60]
inc edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x90], 0xa
jmp 0x4cb081
cmp esi, 0x5c
jne 0x4cae66
push 1
push dword [ebp - 0x3c]
push dword [ebx + 0x30]
push dword [ebp + 0x14]
lea ecx, [ebp - 0x5c]
push ecx
call fcn.004c8db5
add esp, 0x14
mov esi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4cd316
mov edx, esi
neg edx
cmp edx, 5
jne 0x4cab6e
mov esi, 8
jmp 0x4cabcb
mov eax, esi
neg eax
cmp eax, 0x16
jne 0x4cab7e
mov esi, 0x58
jmp 0x4cabcb
mov eax, esi
neg eax
cmp eax, 0x11
jne 0x4cab8e
mov esi, 0x52
jmp 0x4cabcb
mov eax, esi
neg eax
cmp eax, 0x1a
jne 0x4cabbe
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x5c
jne 0x4cabb2
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x45
jne 0x4cabb2
add dword [ebp - 0x5c], 2
jmp 0x4cb081
mov dword [ebp - 0x54], 1
jmp 0x4cb081
mov eax, esi
neg eax
cmp eax, 0x19
je 0x4cb081
test esi, esi
jge 0x4cae66
mov edx, dword [ebx + 8]
mov dword [ebp - 0xd8], edx
add dword [ebp - 0x90], 2
cmp dword [ebp + 0x28], 0
jne 0x4cacfd
mov ecx, esi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x4cabfd
jmp dword [ecx*4 + 0x4cac04]
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cac1e
jmp 0x4cb081
mov dword [ebp - 0x7c], 1
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi + 0x40]
not dl
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cac43
jmp 0x4cb081
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cac63
jmp 0x4cb081
mov dword [ebp - 0x7c], 1
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi + 0xa0]
not dl
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cac8b
jmp 0x4cb081
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi]
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cacae
and byte [ebp - 0x18b], 0xf7
jmp 0x4cb081
mov dword [ebp - 0x7c], 1
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi]
not dl
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cacd9
or byte [ebp - 0x18b], 8
jmp 0x4cb081
cmp esi, 0xfffffff9
je 0x4cb081
cmp esi, 0xfffffffa
je 0x4cb081
cmp esi, 0xfffffff5
je 0x4cb081
cmp esi, 0xfffffff6
je 0x4cb081
cmp esi, 0xfffffff7
je 0x4cb081
cmp esi, 0xfffffff8
je 0x4cb081
mov ecx, esi
neg ecx
cmp ecx, 0x13
jne 0x4cad56
or byte [ebp - 0x18b], 2
or byte [ebp - 0x188], 1
or byte [ebp - 0x178], 1
jmp 0x4cb081
mov eax, esi
neg eax
cmp eax, 0x12
jne 0x4cadad
xor esi, esi
mov dword [ebp - 0xdc], 0xff
mov eax, esi
dec eax
je 0x4cad7c
sub eax, 3
je 0x4cad85
sub eax, 0x10
je 0x4cad8e
jmp 0x4cad95
xor dword [ebp - 0xdc], 2
jmp 0x4cad95
xor dword [ebp - 0xdc], 1
jmp 0x4cad95
xor dword [ebp - 0xdc], 1
mov dl, byte [ebp - 0xdc]
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cad61
jmp 0x4cb081
mov ecx, esi
neg ecx
cmp ecx, 0x15
jne 0x4cadde
or byte [ebp - 0x18b], 4
or byte [ebp - 0x18b], 8
or byte [ebp - 0x18b], 0x10
or byte [ebp - 0x18b], 0x20
or byte [ebp - 0x17c], 0x20
jmp 0x4cb081
neg esi
cmp esi, 0x14
jne 0x4cae3a
xor esi, esi
mov dword [ebp - 0xe0], 0xff
mov eax, esi
dec eax
je 0x4cadfd
sub eax, 0xf
je 0x4cae1b
jmp 0x4cae22
xor dword [ebp - 0xe0], 4
xor dword [ebp - 0xe0], 8
xor dword [ebp - 0xe0], 0x10
xor dword [ebp - 0xe0], 0x20
jmp 0x4cae22
xor dword [ebp - 0xe0], 0x20
mov dl, byte [ebp - 0xe0]
or byte [ebp + esi - 0x18c], dl
inc esi
cmp esi, 0x20
jl 0x4cade7
jmp 0x4cb081
test byte [ebp - 0x3c], 0x40
je 0x4cae4e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 7
jmp 0x4cd316
sub dword [ebp - 0x90], 2
mov eax, dword [ebp - 0x5c]
movzx esi, byte [eax]
jmp 0x4cae66
xor eax, eax
mov dword [ebp - 0x54], eax
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x5c
jne 0x4cae78
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x45
je 0x4cae5d
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc0], eax
cmp esi, 0xd
je 0x4cae8b
cmp esi, 0xa
jne 0x4cae8f
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x54], 0
jne 0x4cb02d
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2d
jne 0x4cb02d
add dword [ebp - 0x5c], 2
jmp 0x4caeb0
add dword [ebp - 0x5c], 2
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x5c
jne 0x4caee7
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x45
je 0x4caeac
jmp 0x4caee7
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x5c
jne 0x4caede
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x45
jne 0x4caede
add dword [ebp - 0x5c], 2
jmp 0x4caee7
mov dword [ebp - 0x54], 1
jmp 0x4caef8
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x5c
jne 0x4caef8
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x51
je 0x4caec3
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
je 0x4caf0e
cmp dword [ebp - 0x54], 0
jne 0x4caf1c
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x5d
jne 0x4caf1c
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x5c], edx
jmp 0x4cb02d
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp dword [ebp - 0x54], 0
jne 0x4caf87
cmp eax, 0x5c
jne 0x4caf87
push 1
push dword [ebp - 0x3c]
push dword [ebx + 0x30]
push dword [ebp + 0x14]
lea edx, [ebp - 0x5c]
push edx
call fcn.004c8db5
add esp, 0x14
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x4cd316
test eax, eax
jge 0x4caf87
cmp eax, 0xfffffffb
jne 0x4caf61
mov eax, 8
jmp 0x4caf87
cmp eax, 0xffffffea
jne 0x4caf6d
mov eax, 0x58
jmp 0x4caf87
cmp eax, 0xffffffef
jne 0x4caf79
mov eax, 0x52
jmp 0x4caf87
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x5c], edx
jmp 0x4cb02d
cmp esi, eax
jle 0x4caf99
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 8
jmp 0x4cd316
cmp esi, eax
je 0x4cb02d
cmp eax, 0xd
je 0x4cafab
cmp eax, 0xa
jne 0x4cafaf
or dword [ebx + 0x44], 0x20
mov edx, eax
sub edx, esi
inc edx
add dword [ebp - 0x90], edx
mov dword [ebp - 0x94], eax
cmp dword [ebp + 0x28], 0
jne 0x4cb081
cmp eax, esi
jl 0x4cb081
mov ecx, esi
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, esi
test ecx, ecx
jns 0x4cafe4
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x18c], dl
test byte [ebp - 0x3c], 1
je 0x4cb026
mov edx, dword [ebx + 4]
xor ecx, ecx
mov cl, byte [edx + esi]
mov dword [ebp - 0xe4], ecx
mov ecx, dword [ebp - 0xe4]
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, dword [ebp - 0xe4]
test ecx, ecx
jns 0x4cb01c
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x18c], dl
inc esi
cmp eax, esi
jge 0x4cafd2
jmp 0x4cb081
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
mov edx, esi
test edx, edx
jns 0x4cb03f
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x18c], al
test byte [ebp - 0x3c], 1
je 0x4cb075
mov eax, dword [ebx + 4]
xor edx, edx
mov dl, byte [eax + esi]
mov esi, edx
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
mov edx, esi
test edx, edx
jns 0x4cb06b
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x18c], al
inc dword [ebp - 0x90]
mov dword [ebp - 0x94], esi
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
movzx esi, byte [ecx]
test esi, esi
je 0x4cb0a1
cmp esi, 0x5d
jne 0x4ca908
cmp dword [ebp - 0x54], 0
jne 0x4ca908
test esi, esi
jne 0x4cb0b3
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
jmp 0x4cd316
cmp dword [ebp - 0x90], 1
jne 0x4cb108
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x78], 0
je 0x4cb0ed
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4cb0d5
mov dword [ebp - 0x20], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov byte [edi], 0x1e
inc edi
mov al, byte [ebp - 0x94]
mov byte [edi], al
inc edi
jmp 0x4cd30e
mov dl, byte [ebp - 0x94]
mov byte [ebp - 0xbc], dl
mov dword [ebp - 0xb4], 1
jmp 0x4cd24f
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4cb115
mov dword [ebp - 0x20], 0xffffffff
mov ecx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x78]
cmp edx, dword [ebp - 0x7c]
jne 0x4cb12d
mov cl, 0x4e
jmp 0x4cb12f
mov cl, 0x4f
mov byte [edi], cl
inc edi
cmp dword [ebp - 0x78], 0
je 0x4cb154
cmp dword [ebp + 0x28], 0
jne 0x4cb166
xor esi, esi
mov al, byte [ebp + esi - 0x18c]
not al
mov byte [edi + esi], al
inc esi
cmp esi, 0x20
jl 0x4cb140
jmp 0x4cb166
push 0x20
lea edx, [ebp - 0x18c]
push edx
push edi
call fcn.004d4838
add esp, 0xc
add edi, 0x20
jmp 0x4cd30e
cmp dword [ebp - 0x84], 0
je 0x4cd23d
push dword [ebp + 0x14]
lea ecx, [ebp - 0x10]
push ecx
lea eax, [ebp - 0xc]
push eax
mov edx, dword [ebp - 0x5c]
inc edx
push edx
call fcn.004c9199
add esp, 0x10
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x4cd316
jmp 0x4cb1ce
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4cb1ce
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4cb1ce
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x64], 0
jne 0x4cb1e2
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 9
jmp 0x4cd316
cmp dword [ebp - 0xc], 0
jne 0x4cb1f4
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], edx
mov ecx, dword [ebp - 0xc]
cmp ecx, dword [ebp - 0x10]
jne 0x4cb200
xor eax, eax
jmp 0x4cb205
mov eax, pe_nt_image_headers32
mov dword [ebp - 0x34], eax
xor edx, edx
mov dword [ebp - 8], edx
xor ecx, ecx
mov dword [ebp - 0x80], ecx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2b
jne 0x4cb232
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x80], 1
inc dword [ebp - 0x5c]
jmp 0x4cb24c
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3f
jne 0x4cb246
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 4], edx
inc dword [ebp - 0x5c]
jmp 0x4cb24c
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x1c
je 0x4cb25c
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x1d
jne 0x4cb2be
movzx esi, byte [edi - 1]
cmp dword [ebp - 0xc], 1
jle 0x4cb271
mov eax, dword [ebp - 0x30]
or eax, esi
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x80], 0
jne 0x4cb359
cmp dword [ebp - 0x10], 0
jge 0x4cb359
push ebx
push dword [ebp - 0x3c]
mov edx, dword [ebp - 0x5c]
inc edx
push edx
push dword [ebp - 0x74]
push dword [ebp - 0x70]
push esi
mov ecx, dword [ebp - 0x64]
xor eax, eax
mov al, byte [ecx]
push eax
call fcn.004c9c39
add esp, 0x1c
test eax, eax
je 0x4cb359
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x80], 1
jmp 0x4cb359
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x1e
jne 0x4cb30b
mov dword [ebp - 8], 0xd
mov eax, dword [ebp - 0x64]
movzx esi, byte [eax + 1]
cmp dword [ebp - 0x80], 0
jne 0x4cb359
cmp dword [ebp - 0x10], 0
jge 0x4cb359
push ebx
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x5c]
inc eax
push eax
push 0
push dword [ebp - 0x70]
push esi
push 0x1e
call fcn.004c9c39
add esp, 0x1c
test eax, eax
je 0x4cb359
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x80], 1
jmp 0x4cb359
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x17
jae 0x4cb506
mov dword [ebp - 8], 0x1a
mov eax, dword [ebp - 0x64]
movzx esi, byte [eax]
cmp dword [ebp - 0x80], 0
jne 0x4cb359
cmp dword [ebp - 0x10], 0
jge 0x4cb359
push ebx
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x5c]
inc eax
push eax
push 0
push dword [ebp - 0x70]
push 0
push esi
call fcn.004c9c39
add esp, 0x1c
test eax, eax
je 0x4cb359
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x80], 1
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x10
je 0x4cb369
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0xf
jne 0x4cb387
mov edx, dword [ebp - 0x64]
xor ecx, ecx
mov cl, byte [edx + 1]
mov dword [ebp - 0xec], ecx
mov eax, dword [ebp - 0x64]
xor edx, edx
mov dl, byte [eax + 2]
mov dword [ebp - 0xf0], edx
jmp 0x4cb396
or ecx, 0xffffffff
mov dword [ebp - 0xf0], ecx
mov dword [ebp - 0xec], ecx
mov dword [ebp - 0xe8], edi
mov edi, dword [ebp - 0x64]
cmp dword [ebp - 0x10], 0
je 0x4cbd09
cmp dword [ebp - 0x10], 1
je 0x4cb3b3
or dword [ebx + 0x44], 1
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x4cb408
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4cb3d3
mov dl, byte [ebp - 4]
add dl, 0x1f
mov byte [edi], dl
inc edi
jmp 0x4cb4fc
cmp dword [ebp - 0x10], 1
jne 0x4cb3e7
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [edi], cl
inc edi
jmp 0x4cb4fc
mov al, byte [ebp - 4]
add al, 0x25
mov byte [edi], al
inc edi
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [edi], dl
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
jmp 0x4cb4fc
cmp dword [ebp - 0xc], 1
jne 0x4cb456
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4cb421
mov al, byte [ebp - 4]
add al, 0x21
mov byte [edi], al
inc edi
jmp 0x4cb4fc
mov edi, dword [ebp - 0xe8]
cmp dword [ebp - 0x10], 1
je 0x4cbd09
mov al, byte [ebp - 4]
add al, 0x25
mov byte [edi], al
inc edi
mov edx, dword [ebp - 0x10]
dec edx
sar edx, 8
mov byte [edi], dl
mov cl, byte [ebp - 0x10]
add cl, 0xff
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
jmp 0x4cb4fc
mov al, byte [ebp - 8]
add al, 0x27
mov byte [edi], al
inc edi
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [edi], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
cmp dword [ebp - 0x10], 0
jge 0x4cb4a2
mov eax, esi
mov byte [edi], al
inc edi
cmp dword [ebp - 0xec], 0
jl 0x4cb498
mov dl, byte [ebp - 0xec]
mov byte [edi], dl
inc edi
mov cl, byte [ebp - 0xf0]
mov byte [edi], cl
inc edi
mov al, byte [ebp - 4]
add al, 0x1f
mov byte [edi], al
inc edi
jmp 0x4cb4fc
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0xc]
je 0x4cb4fc
mov ecx, esi
mov byte [edi], cl
inc edi
cmp dword [ebp - 0xec], 0
jl 0x4cb4ca
mov al, byte [ebp - 0xec]
mov byte [edi], al
inc edi
mov dl, byte [ebp - 0xf0]
mov byte [edi], dl
inc edi
mov ecx, dword [ebp - 0xc]
sub dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 1
jne 0x4cb4e0
mov al, byte [ebp - 4]
add al, 0x23
mov byte [edi], al
inc edi
jmp 0x4cb4fc
mov dl, byte [ebp - 4]
add dl, 0x25
mov byte [edi], dl
inc edi
mov ecx, dword [ebp - 0x10]
sar ecx, 8
mov byte [edi], cl
mov al, byte [ebp - 0x10]
and al, 0xff
mov byte [edi + 1], al
add edi, 2
mov edx, esi
mov byte [edi], dl
inc edi
jmp 0x4cbb47
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x4e
je 0x4cb522
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x4f
je 0x4cb522
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x51
jne 0x4cb5c7
cmp dword [ebp - 0x10], 0
jne 0x4cb530
mov edi, dword [ebp - 0x64]
jmp 0x4cbd09
cmp dword [ebp - 0x10], 1
je 0x4cb53a
or dword [ebx + 0x44], 1
cmp dword [ebp - 0xc], 0
jne 0x4cb553
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4cb553
mov al, byte [ebp - 4]
add al, 0x46
mov byte [edi], al
inc edi
jmp 0x4cbb47
cmp dword [ebp - 0xc], 1
jne 0x4cb56d
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4cb56d
mov dl, byte [ebp - 4]
add dl, 0x48
mov byte [edi], dl
inc edi
jmp 0x4cbb47
cmp dword [ebp - 0xc], 0
jne 0x4cb587
cmp dword [ebp - 0x10], 1
jne 0x4cb587
mov cl, byte [ebp - 4]
add cl, 0x4a
mov byte [edi], cl
inc edi
jmp 0x4cbb47
mov al, byte [ebp - 4]
add al, 0x4c
mov byte [edi], al
inc edi
mov edx, dword [ebp - 0xc]
sar edx, 8
mov byte [edi], dl
mov cl, byte [ebp - 0xc]
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4cb5ae
xor eax, eax
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
sar edx, 8
mov byte [edi], dl
mov cl, byte [ebp - 0x10]
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
jmp 0x4cbb47
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x5e
je 0x4cb5eb
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x5f
je 0x4cb5eb
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x5d
je 0x4cb5eb
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x60
jne 0x4cbb2d
xor edx, edx
mov dword [ebp - 0xf8], edx
mov esi, edi
sub esi, dword [ebp - 0x64]
xor eax, eax
mov dword [ebp - 0xfc], eax
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x60
jne 0x4cb61f
mov ecx, dword [ebp - 0x64]
cmp byte [ecx + 3], 0x66
jne 0x4cb61f
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x37
jmp 0x4cd316
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4cb668
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x100], edx
mov ecx, dword [ebp - 0x100]
xor eax, eax
mov al, byte [ecx + 1]
shl eax, 8
mov edx, dword [ebp - 0x100]
xor ecx, ecx
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x100], eax
mov eax, dword [ebp - 0x100]
cmp byte [eax], 0x55
jne 0x4cb62e
mov edx, edi
sub edx, dword [ebp - 0x100]
mov dword [ebp - 0xf8], edx
cmp dword [ebp - 0xc], 0
jne 0x4cb757
cmp dword [ebp - 0x10], 1
jg 0x4cb6c5
mov byte [edi], 0
push dword [ebp - 0x6c]
push ebx
push dword [ebp - 0x70]
push 1
push dword [ebp - 0x64]
call fcn.004c9b34
add esp, 0x14
push esi
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
inc ecx
push ecx
call fcn.004d485c
add esp, 0xc
inc edi
cmp dword [ebp - 0x10], 0
jne 0x4cb6b2
mov eax, dword [ebp - 0x64]
mov byte [eax], 0x6f
jmp 0x4cbd09
mov dl, byte [ebp - 4]
add dl, 0x67
mov ecx, dword [ebp - 0x64]
mov byte [ecx], dl
inc dword [ebp - 0x64]
jmp 0x4cb74f
mov byte [edi], 0
push dword [ebp - 0x6c]
push ebx
push dword [ebp - 0x70]
push 4
push dword [ebp - 0x64]
call fcn.004c9b34
add esp, 0x14
push esi
push dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, 4
push eax
call fcn.004d485c
add esp, 0xc
add edi, 4
mov dl, byte [ebp - 4]
add dl, 0x67
mov ecx, dword [ebp - 0x64]
mov byte [ecx], dl
inc dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov byte [eax], 0x5e
inc dword [ebp - 0x64]
cmp dword [ebp - 0xfc], 0
jne 0x4cb716
xor edx, edx
jmp 0x4cb71f
mov edx, dword [ebp - 0x64]
sub edx, dword [ebp - 0xfc]
mov dword [ebp - 0x104], edx
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0xfc], eax
mov ecx, dword [ebp - 0x104]
sar ecx, 8
mov eax, dword [ebp - 0x64]
mov byte [eax], cl
mov dl, byte [ebp - 0x104]
and dl, 0xff
mov ecx, dword [ebp - 0x64]
mov byte [ecx + 1], dl
add dword [ebp - 0x64], 2
dec dword [ebp - 0x10]
jmp 0x4cb870
cmp dword [ebp - 0xc], 1
jle 0x4cb864
cmp dword [ebp + 0x28], 0
je 0x4cb7c4
mov eax, dword [ebp - 0xc]
dec eax
imul dword [ebp - 0x44]
mov dword [ebp - 0x108], eax
mov edx, dword [ebp - 0xc]
dec edx
mov dword [ebp - 0x1b0], edx
fild dword [ebp - 0x1b0]
fild dword [ebp - 0x44]
fmulp st(1)
fcomp qword [0x4cd328]
fnstsw ax
sahf
ja 0x4cb7a6
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x108]
jge 0x4cb7b4
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4cd316
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x108]
add dword [edx], ecx
jmp 0x4cb864
cmp dword [ebp - 0x58], 0
je 0x4cb7d6
cmp dword [ebp - 0x24], 0
jge 0x4cb7d6
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0xf4], 1
mov edx, dword [ebp - 0xf4]
cmp edx, dword [ebp - 0xc]
jge 0x4cb864
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x10c], ecx
push esi
push dword [ebp - 0x64]
push edi
call fcn.004d4838
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x10c]
jae 0x4cb848
xor edx, edx
mov dl, byte [eax]
shl edx, 8
xor ecx, ecx
mov cl, byte [eax + 1]
or edx, ecx
add edx, esi
sar edx, 8
mov ecx, dword [ebx + 0x20]
mov byte [ecx], dl
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
mov ecx, esi
add dl, cl
and dl, 0xff
mov ecx, dword [ebx + 0x20]
mov byte [ecx + 1], dl
add dword [ebx + 0x20], 2
add eax, 2
cmp eax, dword [ebp - 0x10c]
jb 0x4cb80c
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x6c], eax
add edi, esi
inc dword [ebp - 0xf4]
mov edx, dword [ebp - 0xf4]
cmp edx, dword [ebp - 0xc]
jl 0x4cb7eb
cmp dword [ebp - 0x10], 0
jle 0x4cb870
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jl 0x4cba74
cmp dword [ebp + 0x28], 0
je 0x4cb8eb
cmp dword [ebp - 0x10], 0
jle 0x4cb8eb
mov edx, dword [ebp - 0x44]
add edx, 7
imul edx, dword [ebp - 0x10]
add edx, 0xfffffffa
mov dword [ebp - 0x110], edx
fild dword [ebp - 0x10]
mov ecx, dword [ebp - 0x44]
add ecx, 7
mov dword [ebp - 0x1b0], ecx
fild dword [ebp - 0x1b0]
fmulp st(1)
fcomp qword [0x4cd328]
fnstsw ax
sahf
ja 0x4cb8cd
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x110]
jge 0x4cb8db
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4cd316
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x110]
add dword [edx], ecx
jmp 0x4cb9f6
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
jl 0x4cb9f6
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x114], edx
mov cl, byte [ebp - 4]
add cl, 0x67
mov byte [edi], cl
inc edi
cmp dword [ebp - 0xf4], 0
je 0x4cb95c
mov byte [edi], 0x5e
inc edi
cmp dword [ebp - 0xfc], 0
jne 0x4cb92e
xor eax, eax
jmp 0x4cb936
mov eax, edi
sub eax, dword [ebp - 0xfc]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0xfc], edi
mov edx, dword [ebp - 0x118]
sar edx, 8
mov byte [edi], dl
mov cl, byte [ebp - 0x118]
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
push esi
push dword [ebp - 0x64]
push edi
call fcn.004d4838
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x114]
jae 0x4cb9d8
xor edx, edx
mov dl, byte [eax]
shl edx, 8
xor ecx, ecx
mov cl, byte [eax + 1]
or edx, ecx
add edx, esi
cmp dword [ebp - 0xf4], 0
je 0x4cb994
mov ecx, 4
jmp 0x4cb999
mov ecx, 1
add edx, ecx
sar edx, 8
mov ecx, dword [ebx + 0x20]
mov byte [ecx], dl
mov dl, byte [eax]
shl edx, 8
or dl, byte [eax + 1]
mov ecx, esi
add dl, cl
cmp dword [ebp - 0xf4], 0
je 0x4cb9bc
mov cl, 4
jmp 0x4cb9be
mov cl, 1
add dl, cl
and dl, 0xff
mov ecx, dword [ebx + 0x20]
mov byte [ecx + 1], dl
add dword [ebx + 0x20], 2
add eax, 2
cmp eax, dword [ebp - 0x114]
jb 0x4cb974
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x6c], eax
add edi, esi
dec dword [ebp - 0xf4]
cmp dword [ebp - 0xf4], 0
jge 0x4cb902
cmp dword [ebp - 0xfc], 0
je 0x4cbb47
mov eax, edi
sub eax, dword [ebp - 0xfc]
inc eax
mov edx, edi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx esi, byte [edx + 2]
or ecx, esi
mov dword [ebp - 0x11c], ecx
cmp dword [ebp - 0x11c], 0
jne 0x4cba31
xor ecx, ecx
jmp 0x4cba3d
mov ecx, dword [ebp - 0xfc]
sub ecx, dword [ebp - 0x11c]
mov dword [ebp - 0xfc], ecx
mov byte [edi], 0x55
inc edi
mov ecx, eax
sar ecx, 8
mov byte [edi], cl
mov ecx, eax
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
mov ecx, eax
sar ecx, 8
mov byte [edx + 1], cl
and al, 0xff
mov byte [edx + 2], al
cmp dword [ebp - 0xfc], 0
jne 0x4cba03
jmp 0x4cbb47
mov eax, edi
sub eax, dword [ebp - 0xf8]
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x120]
xor eax, eax
mov al, byte [edx + 1]
shl eax, 8
mov edx, dword [ebp - 0x120]
xor ecx, ecx
mov cl, byte [edx + 2]
or eax, ecx
mov edx, dword [ebp - 0x120]
sub edx, eax
mov dword [ebp - 0x124], edx
mov al, byte [ebp - 4]
add al, 0x56
mov ecx, dword [ebp - 0x120]
mov byte [ecx], al
cmp dword [ebp + 0x28], 0
jne 0x4cbb47
mov eax, dword [ebp - 0x124]
cmp byte [eax], 0x5d
je 0x4cbb47
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x128], edx
push dword [ebp - 0x70]
push dword [ebp - 0x120]
push dword [ebp - 0x128]
call fcn.004c983f
add esp, 0xc
test eax, eax
je 0x4cbaff
mov ecx, dword [ebp - 0x124]
add byte [ecx], 3
jmp 0x4cbb47
mov eax, dword [ebp - 0x128]
xor edx, edx
mov dl, byte [eax + 1]
shl edx, 8
mov ecx, dword [ebp - 0x128]
xor eax, eax
mov al, byte [ecx + 2]
or edx, eax
add dword [ebp - 0x128], edx
mov edx, dword [ebp - 0x128]
cmp byte [edx], 0x54
je 0x4cbad9
jmp 0x4cbb47
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x6d
je 0x4cbd09
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xb
jmp 0x4cd316
cmp dword [ebp - 0x80], 0
je 0x4cbd09
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x27
je 0x4cbb69
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x41
je 0x4cbb69
mov eax, dword [ebp - 0x50]
cmp byte [eax], 0x34
jne 0x4cbba0
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x41
jne 0x4cbb8a
mov ecx, dword [ebp - 0x50]
cmp byte [ecx + 3], 0x10
je 0x4cbb83
mov eax, dword [ebp - 0x50]
cmp byte [eax + 3], 0xf
jne 0x4cbb8a
mov edx, 2
jmp 0x4cbb8c
xor edx, edx
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [eax]
xor eax, eax
mov al, byte [ecx + 0x67c498]
add edx, eax
add dword [ebp - 0x50], edx
mov edx, edi
sub edx, dword [ebp - 0x50]
mov dword [ebp - 0x12c], edx
cmp dword [ebp - 0x12c], 0
jle 0x4cbd09
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov al, byte [ecx]
add eax, 0xffffffe1
cmp eax, 0x20
ja case.0x4cbbd1.31
mov al, byte [eax + 0x4cbbd8]
jmp dword [eax*4 + 0x4cbbf9]
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x28
jmp 0x4cbd09
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x29
jmp 0x4cbd09
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x2a
jmp 0x4cbd09
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x2b
jmp 0x4cbd09
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x42
jmp 0x4cbd09
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x43
jmp 0x4cbd09
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x44
jmp 0x4cbd09
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x45
jmp 0x4cbd09
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x35
jmp 0x4cbd09
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x36
jmp 0x4cbd09
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x37
jmp 0x4cbd09
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x38
jmp 0x4cbd09
push dword [ebp - 0x12c]
push dword [ebp - 0x50]
mov edx, dword [ebp - 0x50]
add edx, 3
push edx
call fcn.004d485c
add esp, 0xc
add edi, 3
add dword [ebp - 0x12c], 3
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x5d
mov byte [edi], 0x55
inc edi
mov eax, dword [ebp - 0x12c]
sar eax, 8
mov byte [edi], al
mov dl, byte [ebp - 0x12c]
and dl, 0xff
mov byte [edi + 1], dl
add edi, 2
mov ecx, dword [ebp - 0x12c]
sar ecx, 8
mov eax, dword [ebp - 0x50]
mov byte [eax + 1], cl
mov dl, byte [ebp - 0x12c]
and dl, 0xff
mov ecx, dword [ebp - 0x50]
mov byte [ecx + 2], dl
xor eax, eax
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x34]
or dword [ebx + 0x48], edx
jmp 0x4cd30e
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x98], ecx
xor eax, eax
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x14], 0x5f
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x6c], edx
xor ecx, ecx
mov dword [ebp - 0x8c], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x2a
jne 0x4cbe4d
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 2
je 0x4cbe4d
mov dword [ebp - 0x134], str.ACCEPT
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x138], edx
xor ecx, ecx
mov dword [ebp - 0x64], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 2
jne 0x4cbd7e
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3a
jne 0x4cbda7
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3b
jmp 0x4cd316
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x29
je 0x4cbdbd
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3c
jmp 0x4cd316
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x138]
mov dword [ebp - 0x130], edx
xor esi, esi
jmp 0x4cbe26
mov eax, dword [esi*8 + 0x67b89c]
cmp eax, dword [ebp - 0x130]
jne 0x4cbe17
push dword [ebp - 0x130]
push dword [ebp - 0x134]
push dword [ebp - 0x138]
call fcn.004d4b24
add esp, 0xc
test eax, eax
jne 0x4cbe17
mov dl, byte [esi*8 + 0x67b8a0]
mov byte [edi], dl
mov cl, byte [edi]
inc edi
cmp cl, 0x6e
jne 0x4cbe2e
mov dword [ebx + 0x4c], 1
jmp 0x4cbe2e
mov eax, dword [esi*8 + 0x67b89c]
inc eax
add dword [ebp - 0x134], eax
inc esi
cmp esi, dword [0x67b8d4]
jl 0x4cbdd0
cmp esi, dword [0x67b8d4]
jl 0x4cd30e
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3c
jmp 0x4cd316
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3f
jne 0x4cccd5
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x3a
jg 0x4cbee5
je 0x4cbf64
add edx, 0xffffffdf
cmp edx, 0x18
ja case.0x4cbe7a.34
jmp dword [edx*4 + 0x4cbe81]
cmp edx, 0x43
jg 0x4cbf0c
je 0x4cc477
sub edx, 0x3c
je 0x4cc412
dec edx
je 0x4cc3de
dec edx
je 0x4cc468
jmp case.0x4cbe7a.34
sub edx, 0x50
je 0x4cc525
sub edx, 2
je 0x4cc8c6
sub edx, 0x2a
je 0x4cbf5a
jmp case.0x4cbe7a.34
inc dword [ebp - 0x5c]
jmp 0x4cbf30
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
je 0x4cbf40
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x29
jne 0x4cbf2d
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0
jne 0x4cd30e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x12
jmp 0x4cd316
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x4ccd03
mov dword [ebp - 0x14], 0x60
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3f
jne 0x4cbfaa
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 2], 0x3d
je 0x4ccd03
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x21
je 0x4ccd03
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 2], 0x3c
je 0x4ccd03
mov byte [edi + 3], 0x64
mov dword [ebp - 0xa4], 3
mov dword [ebp - 0xa0], 0xffffffff
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x52
jne 0x4cbfe8
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x26
jne 0x4cbfe8
mov dword [ebp - 0xb0], 0xffffffff
add dword [ebp - 0x5c], 2
mov byte [edi + 3], 0x65
jmp 0x4cc042
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3c
jne 0x4cc000
mov dword [ebp - 0xb0], 0x3e
inc dword [ebp - 0x5c]
jmp 0x4cc042
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x27
jne 0x4cc018
mov dword [ebp - 0xb0], 0x27
inc dword [ebp - 0x5c]
jmp 0x4cc042
xor ecx, ecx
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x2d
je 0x4cc032
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2b
jne 0x4cc042
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xa0], eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x4cc064
inc dword [ebp - 0x5c]
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x1c
jmp 0x4cd316
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x150], eax
jmp 0x4cc0b8
cmp dword [ebp - 0x9c], 0
jl 0x4cc0b5
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x67c331], 4
je 0x4cc0ac
mov eax, dword [ebp - 0x9c]
add eax, eax
lea eax, [eax + eax*4]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
add eax, ecx
add eax, 0xffffffd0
jmp 0x4cc0af
or eax, 0xffffffff
mov dword [ebp - 0x9c], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x4cc07a
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x150]
mov dword [ebp - 0x148], edx
cmp dword [ebp - 0xb0], 0
jle 0x4cc0f2
mov ecx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp eax, dword [ebp - 0xb0]
jne 0x4cc0fd
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4cc10e
dec dword [ebp - 0x5c]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1a
jmp 0x4cd316
cmp dword [ebp + 0x28], 0
jne 0x4ccd03
cmp dword [ebp - 0xa0], 0
jle 0x4cc19b
cmp dword [ebp - 0x9c], 0
jg 0x4cc138
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x4cd316
cmp dword [ebp - 0xa0], 0x2d
jne 0x4cc14d
mov edx, dword [ebx + 0x30]
sub edx, dword [ebp - 0x9c]
inc edx
jmp 0x4cc156
mov edx, dword [ebp - 0x9c]
add edx, dword [ebx + 0x30]
mov dword [ebp - 0x9c], edx
cmp dword [ebp - 0x9c], 0
jle 0x4cc170
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebx + 0x34]
jle 0x4cc17e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x4cd316
mov eax, dword [ebp - 0x9c]
sar eax, 8
mov byte [edi + 4], al
mov dl, byte [ebp - 0x9c]
and dl, 0xff
mov byte [edi + 5], dl
jmp 0x4ccd03
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x154], ecx
xor eax, eax
mov dword [ebp - 0x13c], eax
jmp 0x4cc1df
push dword [ebp - 0x148]
mov edx, dword [ebp - 0x154]
add edx, 2
push edx
push dword [ebp - 0x150]
call fcn.004d4b24
add esp, 0xc
test eax, eax
je 0x4cc1ea
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x154], ecx
inc dword [ebp - 0x13c]
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebx + 0x28]
jl 0x4cc1ae
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebx + 0x28]
jge 0x4cc232
mov ecx, dword [ebp - 0x154]
xor eax, eax
mov al, byte [ecx]
shl eax, 8
mov edx, dword [ebp - 0x154]
xor ecx, ecx
mov cl, byte [edx + 1]
or eax, ecx
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
sar eax, 8
mov byte [edi + 4], al
mov dl, byte [ebp - 0x9c]
and dl, 0xff
mov byte [edi + 5], dl
jmp 0x4ccd03
test byte [ebp - 0x3c], 8
setne cl
and ecx, 1
push ecx
push dword [ebp - 0x148]
push dword [ebp - 0x150]
push ebx
push dword [ebp - 0x5c]
call fcn.004c9238
add esp, 0x14
mov dword [ebp - 0x13c], eax
test eax, eax
jle 0x4cc27c
mov edx, dword [ebp - 0x13c]
sar edx, 8
mov byte [edi + 4], dl
mov cl, byte [ebp - 0x13c]
and cl, 0xff
mov byte [edi + 5], cl
jmp 0x4ccd03
cmp dword [ebp - 0xb0], 0
je 0x4cc293
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x4cd316
mov edx, dword [ebp - 0x150]
cmp byte [edx], 0x52
jne 0x4cc359
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x13c], 1
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x148]
jge 0x4cc325
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x13c]
xor eax, eax
mov al, byte [edx + ecx]
test byte [eax + 0x67c331], 4
jne 0x4cc2ea
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4cd316
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x13c]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0x9c]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0x9c], edx
inc dword [ebp - 0x13c]
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x148]
jl 0x4cc2c2
cmp dword [ebp - 0x9c], 0
jne 0x4cc338
mov dword [ebp - 0x9c], 0xffff
mov byte [edi + 3], 0x65
mov edx, dword [ebp - 0x9c]
sar edx, 8
mov byte [edi + 4], dl
mov cl, byte [ebp - 0x9c]
and cl, 0xff
mov byte [edi + 5], cl
jmp 0x4ccd03
cmp dword [ebp - 0x148], 6
jne 0x4cc38e
push 6
push str.DEFINE
push dword [ebp - 0x150]
call fcn.004d4b24
add esp, 0xc
test eax, eax
jne 0x4cc38e
mov byte [edi + 3], 0x66
mov dword [ebp - 0xa4], 1
jmp 0x4ccd03
cmp dword [ebp - 0x9c], 0
jle 0x4cc3bf
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebx + 0x34]
jg 0x4cc3bf
mov edx, dword [ebp - 0x9c]
sar edx, 8
mov byte [edi + 4], dl
mov cl, byte [ebp - 0x9c]
and cl, 0xff
mov byte [edi + 5], cl
jmp 0x4ccd03
cmp dword [ebp - 0x9c], 0
jne 0x4cc3cf
mov eax, 0x23
jmp 0x4cc3d4
mov eax, 0xf
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x4cd316
mov dword [ebp - 0x14], 0x58
inc dword [ebp - 0x5c]
jmp 0x4ccd03
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x29
jne 0x4cc406
mov byte [edi], 0x6d
inc edi
xor eax, eax
mov dword [ebp - 0x64], eax
jmp 0x4cd30e
mov dword [ebp - 0x14], 0x59
jmp 0x4ccd03
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x4cc432
sub cl, 0x1c
jne 0x4cc442
mov dword [ebp - 0x14], 0x5a
add dword [ebp - 0x5c], 2
jmp 0x4ccd03
mov dword [ebp - 0x14], 0x5b
add dword [ebp - 0x5c], 2
jmp 0x4ccd03
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
jne case.0x4cbe7a.39
inc dword [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x18
jmp 0x4cd316
mov dword [ebp - 0x14], 0x5d
inc dword [ebp - 0x5c]
jmp 0x4ccd03
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x40], 1
mov byte [edi], 0x53
inc edi
xor edx, edx
mov dword [ebp - 0x158], edx
jmp 0x4cc4ac
mov ecx, dword [ebp - 0x158]
add ecx, ecx
lea ecx, [ecx + ecx*4]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0x158], ecx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x67c331], 4
jne 0x4cc48f
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4cc4d5
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x27
jmp 0x4cd316
cmp dword [ebp - 0x158], 0xff
jle 0x4cc4ef
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x26
jmp 0x4cd316
mov dl, byte [ebp - 0x158]
mov byte [edi], dl
inc edi
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebx + 0x18]
inc ecx
sar ecx, 8
mov byte [edi], cl
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebx + 0x18]
inc eax
and al, 0xff
mov byte [edi + 1], al
mov byte [edi + 2], 0
mov byte [edi + 3], 0
add edi, 4
xor edx, edx
mov dword [ebp - 0x64], edx
jmp 0x4cd30e
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3d
je 0x4cc538
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3e
jne 0x4cc559
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x3e
sete cl
and ecx, 1
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0xb0], 0x29
jmp 0x4cc75c
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3c
je case.0x4cbe7a.39
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x29
jmp 0x4cd316
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3c
jne 0x4cc57e
mov eax, 0x3e
jmp 0x4cc583
mov eax, 0x27
mov dword [ebp - 0xb0], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x150], edx
jmp 0x4cc59a
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x4cc597
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x150]
mov dword [ebp - 0x148], ecx
cmp dword [ebp + 0x28], 0
je 0x4cc62c
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
je 0x4cc5dc
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x2a
jmp 0x4cd316
cmp dword [ebx + 0x28], 0x2710
jl 0x4cc5f3
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x31
jmp 0x4cd316
mov edx, dword [ebp - 0x148]
add edx, 3
cmp edx, dword [ebx + 0x2c]
jle 0x4cc73d
mov ecx, dword [ebp - 0x148]
add ecx, 3
mov dword [ebx + 0x2c], ecx
cmp dword [ebp - 0x148], 0x20
jle 0x4cc73d
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x4cd316
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x154], edx
xor ecx, ecx
mov dword [ebp - 0x13c], ecx
jmp 0x4cc6e0
push dword [ebp - 0x148]
mov eax, dword [ebp - 0x154]
add eax, 2
push eax
push dword [ebp - 0x150]
call fcn.004d4b4c
add esp, 0xc
mov dword [ebp - 0x15c], eax
cmp dword [ebp - 0x15c], 0
jne 0x4cc6a0
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x148]
cmp byte [edx + ecx + 2], 0
jne 0x4cc696
test byte [ebp - 0x3a], 8
jne 0x4cc6a0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2b
jmp 0x4cd316
mov dword [ebp - 0x15c], 0xffffffff
cmp dword [ebp - 0x15c], 0
jge 0x4cc6d1
mov edx, dword [ebx + 0x28]
sub edx, dword [ebp - 0x13c]
imul edx, dword [ebx + 0x2c]
push edx
push dword [ebp - 0x154]
mov ecx, dword [ebp - 0x154]
add ecx, dword [ebx + 0x2c]
push ecx
call fcn.004d485c
add esp, 0xc
jmp 0x4cc6ef
mov eax, dword [ebx + 0x2c]
add dword [ebp - 0x154], eax
inc dword [ebp - 0x13c]
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebx + 0x28]
jl 0x4cc642
mov ecx, dword [ebx + 0x30]
inc ecx
sar ecx, 8
mov eax, dword [ebp - 0x154]
mov byte [eax], cl
mov dl, byte [ebx + 0x30]
inc edx
and dl, 0xff
mov ecx, dword [ebp - 0x154]
mov byte [ecx + 1], dl
push dword [ebp - 0x148]
push dword [ebp - 0x150]
mov eax, dword [ebp - 0x154]
add eax, 2
push eax
call fcn.004d4838
add esp, 0xc
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x148]
mov byte [edx + ecx + 2], 0
inc dword [ebp - 0x5c]
inc dword [ebx + 0x28]
jmp 0x4ccce4
mov dword [ebp - 0xb0], 0x29
mov dword [ebp - 0x88], 1
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x150], eax
jmp 0x4cc76d
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x4cc76a
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x150]
mov dword [ebp - 0x148], edx
cmp dword [ebp + 0x28], 0
je 0x4cc7ea
cmp dword [ebp - 0x148], 0
jne 0x4cc7a9
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3e
jmp 0x4cd316
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
je 0x4cc7c6
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x2a
jmp 0x4cd316
cmp dword [ebp - 0x148], 0x20
jle 0x4cc7dd
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x4cd316
xor edx, edx
mov dword [ebp - 0x9c], edx
jmp 0x4cc8b4
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x154], ecx
xor eax, eax
mov dword [ebp - 0x13c], eax
jmp 0x4cc841
push dword [ebp - 0x148]
mov edx, dword [ebp - 0x154]
add edx, 2
push edx
push dword [ebp - 0x150]
call fcn.004d4b24
add esp, 0xc
test eax, eax
jne 0x4cc832
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x148]
cmp byte [ecx + eax + 2], 0
je 0x4cc84c
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x154], edx
inc dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebx + 0x28]
jl 0x4cc7fd
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebx + 0x28]
jge 0x4cc879
mov edx, dword [ebp - 0x154]
xor ecx, ecx
mov cl, byte [edx]
shl ecx, 8
mov eax, dword [ebp - 0x154]
xor edx, edx
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0x9c], ecx
jmp 0x4cc8b4
test byte [ebp - 0x3c], 8
setne cl
and ecx, 1
push ecx
push dword [ebp - 0x148]
push dword [ebp - 0x150]
push ebx
push dword [ebp - 0x5c]
call fcn.004c9238
add esp, 0x14
mov dword [ebp - 0x9c], eax
test eax, eax
jg 0x4cc8b4
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4cd316
cmp dword [ebp - 0x88], 0
jne 0x4cc9ee
jmp 0x4cd16f
inc dword [ebp - 0x5c]
mov dword [ebp - 0xb0], 0x29
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0xa0], eax
cmp eax, 0x2b
jne 0x4cc906
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x67c331], 4
jne 0x4cc927
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3f
jmp 0x4cd316
cmp dword [ebp - 0xa0], 0x2d
jne 0x4cc927
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
test byte [ecx + 0x67c331], 4
je case.0x4cbe7a.34
inc dword [ebp - 0x5c]
xor eax, eax
mov dword [ebp - 0x9c], eax
jmp 0x4cc951
mov edx, dword [ebp - 0x9c]
add edx, edx
lea edx, [edx + edx*4]
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
add edx, eax
add edx, 0xffffffd0
mov dword [ebp - 0x9c], edx
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x67c331], 4
jne 0x4cc931
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
je 0x4cc97e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1d
jmp 0x4cd316
cmp dword [ebp - 0xa0], 0x2d
jne 0x4cc9c5
cmp dword [ebp - 0x9c], 0
jne 0x4cc99e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x4cd316
mov edx, dword [ebx + 0x30]
sub edx, dword [ebp - 0x9c]
inc edx
mov dword [ebp - 0x9c], edx
cmp dword [ebp - 0x9c], 0
jg 0x4cc9ee
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x4cd316
cmp dword [ebp - 0xa0], 0x2b
jne 0x4cc9ee
cmp dword [ebp - 0x9c], 0
jne 0x4cc9e5
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x4cd316
mov edx, dword [ebx + 0x30]
add dword [ebp - 0x9c], edx
mov dword [ebp - 0x64], edi
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x160], ecx
cmp dword [ebp + 0x28], 0
jne 0x4ccada
mov byte [edi], 0
cmp dword [ebp - 0x9c], 0
je 0x4cca2a
push dword [ebp - 0x9c]
push dword [ebp - 0x70]
push dword [ebx + 0x14]
call fcn.004c9721
add esp, 0xc
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
jne 0x4cca96
test byte [ebp - 0x3c], 8
setne al
and eax, 1
push eax
push dword [ebp - 0x9c]
push 0
push ebx
push dword [ebp - 0x5c]
call fcn.004c9238
add esp, 0x14
test eax, eax
jge 0x4cca64
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4cd316
mov ecx, dword [ebx + 0x14]
add ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x160], ecx
lea eax, [edi + 4]
sub eax, dword [ebx + 0x14]
sar eax, 8
mov edx, dword [ebx + 0x20]
mov byte [edx], al
lea ecx, [edi + 4]
sub ecx, dword [ebx + 0x14]
and cl, 0xff
mov eax, dword [ebx + 0x20]
mov byte [eax + 1], cl
add dword [ebx + 0x20], 2
jmp 0x4ccada
mov edx, dword [ebp - 0x160]
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
mov eax, dword [ebp - 0x160]
xor edx, edx
mov dl, byte [eax + 2]
or ecx, edx
jne 0x4ccada
push dword [ebp - 0x70]
push dword [ebp + 0x20]
push edi
push dword [ebp - 0x160]
call fcn.004c9a5a
add esp, 0x10
test eax, eax
je 0x4ccada
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x28
jmp 0x4cd316
mov byte [edi], 0x5d
mov byte [edi + 1], 0
mov byte [edi + 2], 6
add edi, 3
mov byte [edi], 0x52
mov eax, dword [ebp - 0x160]
sub eax, dword [ebx + 0x14]
sar eax, 8
mov byte [edi + 1], al
mov edx, dword [ebp - 0x160]
sub edx, dword [ebx + 0x14]
and dl, 0xff
mov byte [edi + 2], dl
add edi, 3
mov byte [edi], 0x55
mov byte [edi + 1], 0
mov byte [edi + 2], 6
add edi, 3
mov dword [ebp - 0x44], 9
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4cd30e
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4cd30e
xor ecx, ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
lea eax, [ebp - 0x140]
mov dword [ebp - 0x14c], eax
jmp 0x4ccc04
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x4ccb7d
je 0x4ccbae
sub eax, 0x2d
je 0x4ccb8e
sub eax, 0x1d
je 0x4ccb9c
sub eax, 0xb
je 0x4ccbda
sub eax, 3
je 0x4ccbe8
jmp 0x4ccbf3
sub eax, 0x6d
je 0x4ccbb9
sub eax, 6
je 0x4ccbc4
sub eax, 5
je 0x4ccbcf
jmp 0x4ccbf3
lea edx, [ebp - 0x144]
mov dword [ebp - 0x14c], edx
jmp 0x4ccc04
mov ecx, dword [ebp - 0x14c]
or dword [ecx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x4ccc04
mov eax, dword [ebp - 0x14c]
or dword [eax], 1
jmp 0x4ccc04
mov edx, dword [ebp - 0x14c]
or dword [edx], 2
jmp 0x4ccc04
mov ecx, dword [ebp - 0x14c]
or dword [ecx], 4
jmp 0x4ccc04
mov eax, dword [ebp - 0x14c]
or dword [eax], 8
jmp 0x4ccc04
mov edx, dword [ebp - 0x14c]
or dword [edx], 0x200
jmp 0x4ccc04
mov ecx, dword [ebp - 0x14c]
or dword [ecx], 0x40
jmp 0x4ccc04
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xc
dec dword [ebp - 0x5c]
jmp 0x4cd316
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4ccc18
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3a
jne 0x4ccb56
mov eax, dword [ebp - 0x3c]
or eax, dword [ebp - 0x140]
mov edx, dword [ebp - 0x144]
not edx
and eax, edx
mov dword [ebp - 0x98], eax
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x29
jne 0x4cccc9
mov eax, dword [ebx + 0x14]
add eax, 3
cmp edi, eax
jne 0x4ccc60
cmp dword [ebp + 0x28], 0
je 0x4ccc55
mov edx, dword [ebp + 0x28]
cmp dword [edx], 6
jne 0x4ccc60
mov ecx, dword [ebp - 0x98]
mov dword [ebx + 0x40], ecx
jmp 0x4cccb1
mov eax, dword [ebp - 0x3c]
and eax, 7
mov edx, dword [ebp - 0x98]
and edx, 7
cmp eax, edx
je 0x4ccc83
mov byte [edi], 0x19
inc edi
mov cl, byte [ebp - 0x98]
and cl, 7
mov byte [edi], cl
inc edi
test byte [ebp - 0x97], 2
setne al
and eax, 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x18]
xor edx, 1
mov dword [ebp - 0x1c], edx
test byte [ebp - 0x98], 1
je 0x4cccac
mov ecx, 0x100
jmp 0x4cccae
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp + 8]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x64], ecx
jmp 0x4cd30e
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x4ccd03
test byte [ebp - 0x3b], 0x10
je 0x4ccce4
mov dword [ebp - 0x14], 0x5e
jmp 0x4ccd03
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
sar eax, 8
mov byte [edi + 3], al
mov dl, byte [ebx + 0x30]
and dl, 0xff
mov byte [edi + 4], dl
mov dword [ebp - 0xa4], 2
cmp dword [ebp - 0x14], 0x5d
jl 0x4ccd0d
mov ecx, edi
jmp 0x4ccd0f
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov al, byte [ebp - 0x14]
mov byte [edi], al
mov dword [ebp - 0x50], edi
mov edx, dword [ebx + 0x48]
mov dword [ebp - 0x38], edx
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp + 0x28], 0
jne 0x4ccd2f
xor edx, edx
jmp 0x4ccd32
lea edx, [ebp - 0x44]
push edx
push ebx
push dword [ebp + 0x20]
lea eax, [ebp - 0xa8]
push eax
lea ecx, [ebp - 0xac]
push ecx
push dword [ebp - 0xa4]
push dword [ebp - 0x8c]
cmp dword [ebp - 0x14], 0x5a
je 0x4ccd61
cmp dword [ebp - 0x14], 0x5b
je 0x4ccd61
xor eax, eax
jmp 0x4ccd66
mov eax, 1
push eax
push dword [ebp + 0x14]
lea edx, [ebp - 0x5c]
push edx
lea ecx, [ebp - 0x50]
push ecx
mov eax, dword [ebp - 0x3c]
and eax, 7
push eax
push dword [ebp - 0x98]
call fcn.004cd330
add esp, 0x34
test eax, eax
je 0x4cd316
cmp dword [ebp - 0x14], 0x60
jne 0x4cce38
cmp dword [ebp + 0x28], 0
jne 0x4cce38
mov dword [ebp - 0x164], edi
xor edx, edx
mov dword [ebp - 0x168], edx
inc dword [ebp - 0x168]
mov ecx, dword [ebp - 0x164]
xor eax, eax
mov al, byte [ecx + 1]
shl eax, 8
mov edx, dword [ebp - 0x164]
xor ecx, ecx
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x164], eax
mov eax, dword [ebp - 0x164]
cmp byte [eax], 0x55
jne 0x4ccdb1
cmp byte [edi + 3], 0x66
jne 0x4cce09
cmp dword [ebp - 0x168], 1
jle 0x4cce00
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x36
jmp 0x4cd316
mov dword [ebp - 0x14], 0x66
jmp 0x4cce38
cmp dword [ebp - 0x168], 2
jle 0x4cce20
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1b
jmp 0x4cd316
cmp dword [ebp - 0x168], 1
jne 0x4cce38
or eax, 0xffffffff
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4cce4e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xe
jmp 0x4cd316
cmp dword [ebp + 0x28], 0
je 0x4ccea2
mov eax, dword [ebp + 0x28]
mov edx, 0x7fffffeb
sub edx, dword [eax]
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffffa
cmp edx, ecx
jge 0x4cce76
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4cd316
mov edx, dword [ebp - 0x44]
add edx, 0xfffffffa
mov ecx, dword [ebp + 0x28]
add dword [ecx], edx
mov byte [edi], 0x5e
inc edi
mov byte [edi], 0
mov byte [edi + 1], 3
add edi, 2
mov byte [edi], 0x55
inc edi
mov byte [edi], 0
mov byte [edi + 1], 3
add edi, 2
jmp 0x4cd30e
mov edi, dword [ebp - 0x50]
cmp dword [ebp - 0x14], 0x66
je 0x4cd30e
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edx
xor ecx, ecx
mov dword [ebp - 0x58], ecx
cmp dword [ebp - 0x14], 0x5d
jl 0x4ccf33
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4ccef7
cmp dword [ebp - 0xac], 0
jl 0x4ccee7
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x58], 1
jmp 0x4cceee
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4ccf18
cmp dword [ebp - 0xac], 0
jl 0x4ccf18
cmp dword [ebp - 0xa8], 0
jge 0x4ccf18
mov edx, dword [ebp - 0xac]
or edx, dword [ebp - 0x38]
mov dword [ebp - 0xa8], edx
cmp dword [ebp - 0xa8], 0
jl 0x4cd30e
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x24], ecx
jmp 0x4cd30e
cmp dword [ebp - 0x14], 0x58
jne 0x4cd30e
cmp dword [ebp - 0xa8], 0
jl 0x4cd30e
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x24], eax
jmp 0x4cd30e
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x60], edx
push 0
push dword [ebp - 0x3c]
push dword [ebx + 0x30]
push dword [ebp + 0x14]
lea ecx, [ebp - 0x5c]
push ecx
call fcn.004c8db5
add esp, 0x14
mov esi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4cd316
test esi, esi
jge 0x4cd229
mov edx, esi
neg edx
cmp edx, 0x1a
jne 0x4ccfbb
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x5c
jne 0x4ccfaf
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 2], 0x45
jne 0x4ccfaf
add dword [ebp - 0x5c], 2
jmp 0x4cd30e
mov dword [ebp - 0x54], 1
jmp 0x4cd30e
mov edx, esi
neg edx
cmp edx, 0x19
je 0x4cd30e
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4ccfe7
mov ecx, esi
neg ecx
cmp ecx, 5
jle 0x4ccfe7
mov eax, esi
neg eax
cmp eax, 0x17
jge 0x4ccfe7
mov dword [ebp - 0x20], 0xffffffff
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x2c], edx
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
mov eax, esi
neg eax
cmp eax, 0x1b
jne 0x4cd0fe
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x6c], edx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3c
jne 0x4cd018
mov eax, 0x3e
jmp 0x4cd01d
mov eax, 0x27
mov dword [ebp - 0xb0], eax
xor edx, edx
mov dword [ebp - 0xa4], edx
xor ecx, ecx
mov dword [ebp - 0x8c], ecx
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x2b
je 0x4cd0c6
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2d
je 0x4cd0c6
mov dword [ebp - 0x16c], 1
mov eax, dword [ebp - 0x5c]
inc eax
jmp 0x4cd07c
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x4cd06e
xor edx, edx
mov dword [ebp - 0x16c], edx
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0xc]
test byte [edx + ecx], 0x10
je 0x4cd08d
inc eax
cmp byte [eax], 0
je 0x4cd08d
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xb0]
jne 0x4cd059
movzx eax, byte [eax]
cmp eax, dword [ebp - 0xb0]
je 0x4cd0a6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x39
jmp 0x4cd30e
cmp dword [ebp - 0x16c], 0
je 0x4cd0b7
inc dword [ebp - 0x5c]
jmp 0x4cc8d3
mov dword [ebp - 0x88], 1
jmp 0x4cc75c
mov eax, dword [ebp - 0x5c]
add eax, 2
jmp 0x4cd0cf
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x67c331], 4
jne 0x4cd0ce
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xb0]
je 0x4cd0f6
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x39
jmp 0x4cd30e
inc dword [ebp - 0x5c]
jmp 0x4cc8d3
mov edx, esi
neg edx
cmp edx, 0x1c
jne 0x4cd15b
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x3c
je 0x4cd122
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x27
je 0x4cd122
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x7b
jne 0x4cd15b
xor ecx, ecx
mov dword [ebp - 0x88], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3c
jne 0x4cd13c
mov edx, 0x3e
jmp 0x4cd150
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x27
jne 0x4cd14b
mov edx, 0x27
jmp 0x4cd150
mov edx, 0x7d
mov dword [ebp - 0xb0], edx
jmp 0x4cc75c
mov eax, esi
neg eax
cmp eax, 0x1d
jl 0x4cd1d9
neg esi
add esi, 0xffffffe3
mov dword [ebp - 0x9c], esi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4cd17c
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x64], edi
mov byte [edi], 0x51
inc edi
mov ecx, dword [ebp - 0x9c]
sar ecx, 8
mov byte [edi], cl
mov al, byte [ebp - 0x9c]
and al, 0xff
mov byte [edi + 1], al
add edi, 2
cmp dword [ebp - 0x9c], 0x20
jge 0x4cd1b4
mov ecx, dword [ebp - 0x9c]
mov edx, 1
shl edx, cl
jmp 0x4cd1b9
mov edx, 1
or dword [ebx + 0x3c], edx
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebx + 0x38]
jle 0x4cd30e
mov ecx, dword [ebp - 0x9c]
mov dword [ebx + 0x38], ecx
jmp 0x4cd30e
mov eax, esi
neg eax
cmp eax, 0x16
je 0x4cd1f4
mov edx, esi
neg edx
cmp edx, 0xf
je 0x4cd1f4
mov ecx, esi
neg ecx
cmp ecx, 0x10
jne 0x4cd202
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2d
jmp 0x4cd316
mov edx, esi
neg edx
cmp edx, 5
jle 0x4cd218
mov ecx, esi
neg ecx
cmp ecx, 0x17
jge 0x4cd218
mov eax, edi
jmp 0x4cd21a
xor eax, eax
mov dword [ebp - 0x64], eax
mov edx, esi
neg dl
mov byte [edi], dl
inc edi
jmp 0x4cd30e
mov ecx, esi
mov byte [ebp - 0xbc], cl
mov dword [ebp - 0xb4], 1
jmp 0x4cd24f
mov dword [ebp - 0xb4], 1
mov eax, esi
mov byte [ebp - 0xbc], al
mov dword [ebp - 0x64], edi
test byte [ebp - 0x3c], 1
je 0x4cd25c
mov dl, 0x1d
jmp 0x4cd25e
mov dl, 0x1c
mov byte [edi], dl
inc edi
xor esi, esi
cmp esi, dword [ebp - 0xb4]
jge 0x4cd27e
mov al, byte [ebp + esi - 0xbc]
mov byte [edi], al
inc edi
inc esi
cmp esi, dword [ebp - 0xb4]
jl 0x4cd26b
cmp byte [ebp - 0xbc], 0xd
je 0x4cd290
cmp byte [ebp - 0xbc], 0xa
jne 0x4cd294
or dword [ebx + 0x44], 0x20
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4cd2e5
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0xb4], 1
je 0x4cd2b6
cmp dword [ebp - 0x30], 0
jne 0x4cd2da
xor ecx, ecx
mov cl, byte [ebp - 0xbc]
or ecx, dword [ebp - 0x30]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0xb4], 1
je 0x4cd30e
xor eax, eax
mov al, byte [edi - 1]
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
jmp 0x4cd30e
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
jmp 0x4cd30e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x24]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0xb4], 1
je 0x4cd300
cmp dword [ebp - 0x30], 0
jne 0x4cd30e
xor eax, eax
mov al, byte [edi - 1]
or eax, dword [ebp - 0x30]
or eax, dword [ebx + 0x48]
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x5c]
jmp 0x4ca463
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x5c]
mov dword [edx], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret