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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe48
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 0x4c31aa
mov eax, 0x100
jmp 0x4c31ac
xor eax, eax
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x5c]
movzx esi, byte [edx]
cmp dword [ebp + 0x28], 0
je 0x4c3246
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp edi, eax
jbe 0x4c31d9
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x4c6132
cmp edi, dword [ebp - 0x48]
jae 0x4c31e1
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 0x4c3202
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4c6132
mov edx, edi
sub edx, dword [ebp - 0x48]
mov ecx, dword [ebp + 0x28]
add dword [ecx], edx
cmp dword [ebp - 0x64], 0
je 0x4c323e
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x4c]
jbe 0x4c3241
mov edx, edi
sub edx, dword [ebp - 0x64]
push edx
push dword [ebp - 0x64]
push dword [ebp - 0x4c]
call fcn.004cfa10
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 0x4c3241
mov edi, dword [ebp - 0x4c]
mov dword [ebp - 0x48], edi
jmp 0x4c3261
mov eax, dword [ebx + 0x10]
add eax, 0x1000
cmp eax, dword [ebx + 0x24]
jae 0x4c3261
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x34
jmp 0x4c6132
cmp dword [ebp - 0x54], 0
je 0x4c32c7
test esi, esi
je 0x4c32c7
cmp esi, 0x5c
jne 0x4c3286
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x45
jne 0x4c3286
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x4c612a
cmp dword [ebp - 0x68], 0
je 0x4c32a6
cmp dword [ebp + 0x28], 0
jne 0x4c32a1
push ebx
push dword [ebp - 0x5c]
push dword [ebp - 0x68]
call fcn.004c2950
add esp, 0xc
xor edx, edx
mov dword [ebp - 0x68], edx
test byte [ebp - 0x3b], 0x40
je 0x4c6059
mov dword [ebp - 0x68], edi
push ebx
push dword [ebp - 0x5c]
push edi
call fcn.004c291a
add esp, 0xc
mov edi, eax
jmp 0x4c6059
cmp esi, 0x2a
je 0x4c32ee
cmp esi, 0x2b
je 0x4c32ee
cmp esi, 0x3f
je 0x4c32ee
cmp esi, 0x7b
jne 0x4c32ea
mov ecx, dword [ebp - 0x5c]
inc ecx
push ecx
call fcn.004c1c17
pop ecx
test eax, eax
jne 0x4c32ee
xor eax, eax
jmp 0x4c32f3
mov eax, 1
mov dword [ebp - 0x84], eax
cmp dword [ebp - 0x84], 0
jne 0x4c332d
cmp dword [ebp - 0x68], 0
je 0x4c332d
mov edx, dword [ebp - 0x40]
add dword [ebp - 0x40], 0xffffffff
test edx, edx
jg 0x4c332d
cmp dword [ebp + 0x28], 0
jne 0x4c3328
push ebx
push dword [ebp - 0x5c]
push dword [ebp - 0x68]
call fcn.004c2950
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 0x68], ecx
test byte [ebp - 0x3c], 8
je 0x4c33d9
mov eax, dword [ebx + 0xc]
test byte [eax + esi], 1
jne 0x4c612a
cmp esi, 0x23
jne 0x4c33d9
jmp 0x4c33c0
cmp dword [ebx + 0x58], 0
je 0x4c3384
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebx + 0x1c]
jae 0x4c3379
push dword [ebp - 0x70]
lea ecx, [ebx + 0x5c]
push ecx
push dword [ebx + 0x1c]
push dword [ebx + 0x58]
push dword [ebp - 0x5c]
call fcn.004cb838
add esp, 0x14
test eax, eax
jne 0x4c337d
xor eax, eax
jmp 0x4c33b3
mov eax, 1
jmp 0x4c33b3
mov edx, dword [ebx + 0x1c]
sub edx, dword [ebx + 0x5c]
cmp edx, dword [ebp - 0x5c]
jb 0x4c33aa
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, byte [ebx + 0x60]
jne 0x4c33aa
cmp dword [ebx + 0x5c], 1
je 0x4c33ae
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
cmp cl, byte [ebx + 0x61]
je 0x4c33ae
xor eax, eax
jmp 0x4c33b3
mov eax, 1
test eax, eax
je 0x4c33c0
mov edx, dword [ebx + 0x5c]
dec edx
add dword [ebp - 0x5c], edx
jmp 0x4c33cb
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
jne 0x4c334f
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
jne 0x4c612a
xor esi, esi
test byte [ebp - 0x3b], 0x40
je 0x4c33fa
cmp dword [ebp - 0x84], 0
jne 0x4c33fa
mov dword [ebp - 0x68], edi
push ebx
push dword [ebp - 0x5c]
push edi
call fcn.004c291a
add esp, 0xc
mov edi, eax
mov eax, esi
cmp eax, 0x3f
jg 0x4c3448
je 0x4c3f0e
cmp eax, 0x29
jg 0x4c342a
je 0x4c3480
sub eax, 1
jb 0x4c3480
sub eax, 0x23
je 0x4c34f7
sub eax, 4
je 0x4c4a5b
jmp 0x4c6059
sub eax, 0x2a
je 0x4c3ef0
dec eax
je 0x4c3efe
sub eax, 3
je 0x4c3505
jmp 0x4c6059
cmp eax, 0x5e
jg 0x4c346f
je 0x4c34d6
sub eax, 0x5b
je 0x4c354d
dec eax
je 0x4c5d74
dec eax
je 0x4c3535
jmp 0x4c6059
sub eax, 0x7b
je 0x4c3eba
dec eax
je 0x4c3480
jmp 0x4c6059
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 0x4c34cc
mov ecx, dword [ebp + 0x28]
mov eax, 0x7fffffeb
sub eax, dword [ecx]
mov edx, edi
sub edx, dword [ebp - 0x48]
cmp eax, edx
jge 0x4c34c4
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x14
jmp 0x4c6132
sub edi, dword [ebp - 0x48]
mov eax, dword [ebp + 0x28]
add dword [eax], edi
mov eax, 1
jmp 0x4c613c
test byte [ebp - 0x3c], 2
je 0x4c34e9
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c34e9
mov dword [ebp - 0x20], 0xffffffff
xor edx, edx
mov dword [ebp - 0x64], edx
mov byte [edi], 0x1a
inc edi
jmp 0x4c612a
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov byte [edi], 0x1b
inc edi
jmp 0x4c612a
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c3512
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 0x4c352b
mov cl, 0xd
jmp 0x4c352d
mov cl, 0xc
mov byte [edi], cl
inc edi
jmp 0x4c612a
test byte [ebx + 0x47], 2
je 0x4c6059
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x40
jmp 0x4c6132
mov dword [ebp - 0x64], edi
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3a
je 0x4c356b
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x2e
je 0x4c356b
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3d
jne 0x4c359d
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp - 0x5c]
call fcn.004c27e3
add esp, 8
test eax, eax
je 0x4c359d
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3a
jne 0x4c358e
mov edx, 0xd
jmp 0x4c3593
mov edx, 0x1f
mov eax, dword [ebp + 0x14]
mov dword [eax], edx
jmp 0x4c6132
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 0x4c35dc
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x45
jne 0x4c35be
inc dword [ebp - 0x5c]
jmp 0x4c35a2
push 3
push 0x747750
mov edx, dword [ebp - 0x5c]
inc edx
push edx
call fcn.004cfcd8
add esp, 0xc
test eax, eax
jne 0x4c35f0
add dword [ebp - 0x5c], 3
jmp 0x4c35a2
cmp dword [ebp - 0x78], 0
jne 0x4c35f0
cmp esi, 0x5e
jne 0x4c35f0
mov dword [ebp - 0x78], 1
jmp 0x4c35a2
cmp esi, 0x5d
jne 0x4c3622
test byte [ebx + 0x47], 2
je 0x4c3622
cmp dword [ebp - 0x78], 0
je 0x4c3605
mov cl, 0xd
jmp 0x4c3607
mov cl, 0x6f
mov byte [edi], cl
inc edi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c3617
mov dword [ebp - 0x20], 0xffffffff
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
jmp 0x4c612a
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 - 0x194]
push edx
call fcn.004cfa5c
add esp, 0xc
test esi, esi
je 0x4c3ded
cmp dword [ebp - 0x54], 0
je 0x4c367d
cmp esi, 0x5c
jne 0x4c3bb2
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x45
jne 0x4c3bb2
xor eax, eax
mov dword [ebp - 0x54], eax
inc dword [ebp - 0x5c]
jmp 0x4c3dcd
cmp esi, 0x5b
jne 0x4c387c
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3a
je 0x4c36a5
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x2e
je 0x4c36a5
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3d
jne 0x4c387c
lea edx, [ebp - 0x60]
push edx
push dword [ebp - 0x5c]
call fcn.004c27e3
add esp, 8
test eax, eax
je 0x4c387c
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 0x4c36e4
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1f
jmp 0x4c6132
add dword [ebp - 0x5c], 2
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x5e
jne 0x4c3704
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.004c2830
add esp, 8
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jge 0x4c3733
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1e
jmp 0x4c6132
test byte [ebp - 0x3c], 1
je 0x4c374a
cmp dword [ebp - 0xc8], 2
jg 0x4c374a
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 + 0x746bb4]
add eax, dword [ebp - 0xd4]
push eax
lea edx, [ebp - 0x1b4]
push edx
call fcn.004cf9ec
add esp, 0xc
mov ecx, dword [ebp - 0xc8]
mov eax, dword [ecx*4 + 0x746bb8]
mov dword [ebp - 0xcc], eax
mov edx, dword [ebp - 0xc8]
mov ecx, dword [edx*4 + 0x746bbc]
mov dword [ebp - 0xd0], ecx
cmp dword [ebp - 0xcc], 0
jl 0x4c37fc
cmp dword [ebp - 0xd0], 0
jl 0x4c37d9
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 - 0x1b4], al
inc esi
cmp esi, 0x20
jl 0x4c37b8
jmp 0x4c37fc
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 - 0x1b4], al
inc esi
cmp esi, 0x20
jl 0x4c37db
cmp dword [ebp - 0xd0], 0
jge 0x4c380b
neg dword [ebp - 0xd0]
cmp dword [ebp - 0xd0], 1
jne 0x4c381d
and byte [ebp - 0x1b3], 0xc3
jmp 0x4c382d
cmp dword [ebp - 0xd0], 2
jne 0x4c382d
and byte [ebp - 0x1a9], 0x7f
cmp dword [ebp - 0xc4], 0
je 0x4c3850
xor esi, esi
mov al, byte [ebp + esi - 0x1b4]
not al
or byte [ebp + esi - 0x194], al
inc esi
cmp esi, 0x20
jl 0x4c3838
jmp 0x4c3866
xor esi, esi
mov al, byte [ebp + esi - 0x1b4]
or byte [ebp + esi - 0x194], al
inc esi
cmp esi, 0x20
jl 0x4c3852
mov edx, dword [ebp - 0x60]
inc edx
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x90], 0xa
jmp 0x4c3dcd
cmp esi, 0x5c
jne 0x4c3bb2
push 1
push dword [ebp - 0x3c]
push dword [ebx + 0x34]
push dword [ebp + 0x14]
lea ecx, [ebp - 0x5c]
push ecx
call fcn.004c18a9
add esp, 0x14
mov esi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4c6132
mov edx, esi
neg edx
cmp edx, 5
jne 0x4c38ba
mov esi, 8
jmp 0x4c3917
mov eax, esi
neg eax
cmp eax, 0x16
jne 0x4c38ca
mov esi, 0x58
jmp 0x4c3917
mov eax, esi
neg eax
cmp eax, 0x11
jne 0x4c38da
mov esi, 0x52
jmp 0x4c3917
mov eax, esi
neg eax
cmp eax, 0x1a
jne 0x4c390a
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x5c
jne 0x4c38fe
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x45
jne 0x4c38fe
add dword [ebp - 0x5c], 2
jmp 0x4c3dcd
mov dword [ebp - 0x54], 1
jmp 0x4c3dcd
mov eax, esi
neg eax
cmp eax, 0x19
je 0x4c3dcd
test esi, esi
jge 0x4c3bb2
mov edx, dword [ebx + 8]
mov dword [ebp - 0xd8], edx
add dword [ebp - 0x90], 2
cmp dword [ebp + 0x28], 0
jne 0x4c3a49
mov ecx, esi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x4c3949
jmp dword [ecx*4 + 0x4c3950]
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi + 0x40]
or byte [ebp + esi - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c396a
jmp 0x4c3dcd
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 - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c398f
jmp 0x4c3dcd
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi + 0xa0]
or byte [ebp + esi - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c39af
jmp 0x4c3dcd
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 - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c39d7
jmp 0x4c3dcd
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi]
or byte [ebp + esi - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c39fa
and byte [ebp - 0x193], 0xf7
jmp 0x4c3dcd
mov dword [ebp - 0x7c], 1
xor esi, esi
mov eax, dword [ebp - 0xd8]
mov dl, byte [eax + esi]
not dl
or byte [ebp + esi - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c3a25
or byte [ebp - 0x193], 8
jmp 0x4c3dcd
cmp esi, 0xfffffff9
je 0x4c3dcd
cmp esi, 0xfffffffa
je 0x4c3dcd
cmp esi, 0xfffffff5
je 0x4c3dcd
cmp esi, 0xfffffff6
je 0x4c3dcd
cmp esi, 0xfffffff7
je 0x4c3dcd
cmp esi, 0xfffffff8
je 0x4c3dcd
mov ecx, esi
neg ecx
cmp ecx, 0x13
jne 0x4c3aa2
or byte [ebp - 0x193], 2
or byte [ebp - 0x190], 1
or byte [ebp - 0x180], 1
jmp 0x4c3dcd
mov eax, esi
neg eax
cmp eax, 0x12
jne 0x4c3af9
xor esi, esi
mov dword [ebp - 0xdc], 0xff
mov eax, esi
dec eax
je 0x4c3ac8
sub eax, 3
je 0x4c3ad1
sub eax, 0x10
je 0x4c3ada
jmp 0x4c3ae1
xor dword [ebp - 0xdc], 2
jmp 0x4c3ae1
xor dword [ebp - 0xdc], 1
jmp 0x4c3ae1
xor dword [ebp - 0xdc], 1
mov dl, byte [ebp - 0xdc]
or byte [ebp + esi - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c3aad
jmp 0x4c3dcd
mov ecx, esi
neg ecx
cmp ecx, 0x15
jne 0x4c3b2a
or byte [ebp - 0x193], 4
or byte [ebp - 0x193], 8
or byte [ebp - 0x193], 0x10
or byte [ebp - 0x193], 0x20
or byte [ebp - 0x184], 0x20
jmp 0x4c3dcd
neg esi
cmp esi, 0x14
jne 0x4c3b86
xor esi, esi
mov dword [ebp - 0xe0], 0xff
mov eax, esi
dec eax
je 0x4c3b49
sub eax, 0xf
je 0x4c3b67
jmp 0x4c3b6e
xor dword [ebp - 0xe0], 4
xor dword [ebp - 0xe0], 8
xor dword [ebp - 0xe0], 0x10
xor dword [ebp - 0xe0], 0x20
jmp 0x4c3b6e
xor dword [ebp - 0xe0], 0x20
mov dl, byte [ebp - 0xe0]
or byte [ebp + esi - 0x194], dl
inc esi
cmp esi, 0x20
jl 0x4c3b33
jmp 0x4c3dcd
test byte [ebp - 0x3c], 0x40
je 0x4c3b9a
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 7
jmp 0x4c6132
sub dword [ebp - 0x90], 2
mov eax, dword [ebp - 0x5c]
movzx esi, byte [eax]
jmp 0x4c3bb2
xor eax, eax
mov dword [ebp - 0x54], eax
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x5c
jne 0x4c3bc4
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x45
je 0x4c3ba9
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xc0], eax
cmp esi, 0xd
je 0x4c3bd7
cmp esi, 0xa
jne 0x4c3bdb
or dword [ebx + 0x48], 0x20
cmp dword [ebp - 0x54], 0
jne 0x4c3d79
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2d
jne 0x4c3d79
add dword [ebp - 0x5c], 2
jmp 0x4c3bfc
add dword [ebp - 0x5c], 2
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x5c
jne 0x4c3c33
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x45
je 0x4c3bf8
jmp 0x4c3c33
add dword [ebp - 0x5c], 2
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x5c
jne 0x4c3c2a
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x45
jne 0x4c3c2a
add dword [ebp - 0x5c], 2
jmp 0x4c3c33
mov dword [ebp - 0x54], 1
jmp 0x4c3c44
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x5c
jne 0x4c3c44
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x51
je 0x4c3c0f
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
je 0x4c3c5a
cmp dword [ebp - 0x54], 0
jne 0x4c3c68
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x5d
jne 0x4c3c68
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x5c], edx
jmp 0x4c3d79
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
cmp dword [ebp - 0x54], 0
jne 0x4c3cd3
cmp eax, 0x5c
jne 0x4c3cd3
push 1
push dword [ebp - 0x3c]
push dword [ebx + 0x34]
push dword [ebp + 0x14]
lea edx, [ebp - 0x5c]
push edx
call fcn.004c18a9
add esp, 0x14
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x4c6132
test eax, eax
jge 0x4c3cd3
cmp eax, 0xfffffffb
jne 0x4c3cad
mov eax, 8
jmp 0x4c3cd3
cmp eax, 0xffffffea
jne 0x4c3cb9
mov eax, 0x58
jmp 0x4c3cd3
cmp eax, 0xffffffef
jne 0x4c3cc5
mov eax, 0x52
jmp 0x4c3cd3
mov edx, dword [ebp - 0xc0]
mov dword [ebp - 0x5c], edx
jmp 0x4c3d79
cmp esi, eax
jle 0x4c3ce5
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 8
jmp 0x4c6132
cmp esi, eax
je 0x4c3d79
cmp eax, 0xd
je 0x4c3cf7
cmp eax, 0xa
jne 0x4c3cfb
or dword [ebx + 0x48], 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 0x4c3dcd
cmp eax, esi
jl 0x4c3dcd
mov ecx, esi
and ecx, 7
mov dl, 1
shl dl, cl
mov ecx, esi
test ecx, ecx
jns 0x4c3d30
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x194], dl
test byte [ebp - 0x3c], 1
je 0x4c3d72
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 0x4c3d68
add ecx, 7
sar ecx, 3
or byte [ebp + ecx - 0x194], dl
inc esi
cmp eax, esi
jge 0x4c3d1e
jmp 0x4c3dcd
mov ecx, esi
and ecx, 7
mov al, 1
shl al, cl
mov edx, esi
test edx, edx
jns 0x4c3d8b
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x194], al
test byte [ebp - 0x3c], 1
je 0x4c3dc1
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 0x4c3db7
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x194], 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 0x4c3ded
cmp esi, 0x5d
jne 0x4c3654
cmp dword [ebp - 0x54], 0
jne 0x4c3654
test esi, esi
jne 0x4c3dff
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
jmp 0x4c6132
cmp dword [ebp - 0x90], 1
jne 0x4c3e54
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x78], 0
je 0x4c3e39
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c3e21
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 0x4c612a
mov dl, byte [ebp - 0x94]
mov byte [ebp - 0xbc], dl
mov dword [ebp - 0xb4], 1
jmp 0x4c606b
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c3e61
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 0x4c3e79
mov cl, 0x4e
jmp 0x4c3e7b
mov cl, 0x4f
mov byte [edi], cl
inc edi
cmp dword [ebp - 0x78], 0
je 0x4c3ea0
cmp dword [ebp + 0x28], 0
jne 0x4c3eb2
xor esi, esi
mov al, byte [ebp + esi - 0x194]
not al
mov byte [edi + esi], al
inc esi
cmp esi, 0x20
jl 0x4c3e8c
jmp 0x4c3eb2
push 0x20
lea edx, [ebp - 0x194]
push edx
push edi
call fcn.004cf9ec
add esp, 0xc
add edi, 0x20
jmp 0x4c612a
cmp dword [ebp - 0x84], 0
je 0x4c6059
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.004c1c8d
add esp, 0x10
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp + 0x14]
cmp dword [ecx], 0
jne 0x4c6132
jmp 0x4c3f1a
xor eax, eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4c3f1a
mov dword [ebp - 0xc], 1
mov dword [ebp - 0x10], 0xffffffff
jmp 0x4c3f1a
xor edx, edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], 1
cmp dword [ebp - 0x64], 0
jne 0x4c3f2e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 9
jmp 0x4c6132
cmp dword [ebp - 0xc], 0
jne 0x4c3f40
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 0x4c3f4c
xor eax, eax
jmp 0x4c3f51
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 0x4c3f7e
xor ecx, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x80], 1
inc dword [ebp - 0x5c]
jmp 0x4c3f98
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x3f
jne 0x4c3f92
mov edx, dword [ebp - 0x1c]
mov dword [ebp - 4], edx
inc dword [ebp - 0x5c]
jmp 0x4c3f98
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x1c
je 0x4c3fa8
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x1d
jne 0x4c400a
movzx esi, byte [edi - 1]
cmp dword [ebp - 0xc], 1
jle 0x4c3fbd
mov eax, dword [ebp - 0x30]
or eax, esi
or eax, dword [ebx + 0x4c]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x80], 0
jne 0x4c40a5
cmp dword [ebp - 0x10], 0
jge 0x4c40a5
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.004c2985
add esp, 0x1c
test eax, eax
je 0x4c40a5
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x80], 1
jmp 0x4c40a5
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x1e
jne 0x4c4057
mov dword [ebp - 8], 0xd
mov eax, dword [ebp - 0x64]
movzx esi, byte [eax + 1]
cmp dword [ebp - 0x80], 0
jne 0x4c40a5
cmp dword [ebp - 0x10], 0
jge 0x4c40a5
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.004c2985
add esp, 0x1c
test eax, eax
je 0x4c40a5
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x80], 1
jmp 0x4c40a5
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x17
jae 0x4c4248
mov dword [ebp - 8], 0x1a
mov eax, dword [ebp - 0x64]
movzx esi, byte [eax]
cmp dword [ebp - 0x80], 0
jne 0x4c40a5
cmp dword [ebp - 0x10], 0
jge 0x4c40a5
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.004c2985
add esp, 0x1c
test eax, eax
je 0x4c40a5
xor edx, edx
mov dword [ebp - 4], edx
mov dword [ebp - 0x80], 1
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x10
je 0x4c40b5
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0xf
jne 0x4c40d3
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 0x4c40e2
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 0x4c4a4b
mov eax, dword [ebp - 8]
add dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jne 0x4c414a
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c4115
mov dl, byte [ebp - 4]
add dl, 0x1f
mov byte [edi], dl
inc edi
jmp 0x4c423e
cmp dword [ebp - 0x10], 1
jne 0x4c4129
mov cl, byte [ebp - 4]
add cl, 0x23
mov byte [edi], cl
inc edi
jmp 0x4c423e
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 0x4c423e
cmp dword [ebp - 0xc], 1
jne 0x4c4198
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c4163
mov al, byte [ebp - 4]
add al, 0x21
mov byte [edi], al
inc edi
jmp 0x4c423e
mov edi, dword [ebp - 0xe8]
cmp dword [ebp - 0x10], 1
je 0x4c4a4b
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 0x4c423e
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 0x4c41e4
mov eax, esi
mov byte [edi], al
inc edi
cmp dword [ebp - 0xec], 0
jl 0x4c41da
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 0x4c423e
mov edx, dword [ebp - 0x10]
cmp edx, dword [ebp - 0xc]
je 0x4c423e
mov ecx, esi
mov byte [edi], cl
inc edi
cmp dword [ebp - 0xec], 0
jl 0x4c420c
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 0x4c4222
mov al, byte [ebp - 4]
add al, 0x23
mov byte [edi], al
inc edi
jmp 0x4c423e
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 0x4c487f
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x4e
je 0x4c4264
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x4f
je 0x4c4264
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x51
jne 0x4c42ff
cmp dword [ebp - 0x10], 0
jne 0x4c4272
mov edi, dword [ebp - 0x64]
jmp 0x4c4a4b
cmp dword [ebp - 0xc], 0
jne 0x4c428b
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c428b
mov al, byte [ebp - 4]
add al, 0x46
mov byte [edi], al
inc edi
jmp 0x4c487f
cmp dword [ebp - 0xc], 1
jne 0x4c42a5
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c42a5
mov dl, byte [ebp - 4]
add dl, 0x48
mov byte [edi], dl
inc edi
jmp 0x4c487f
cmp dword [ebp - 0xc], 0
jne 0x4c42bf
cmp dword [ebp - 0x10], 1
jne 0x4c42bf
mov cl, byte [ebp - 4]
add cl, 0x4a
mov byte [edi], cl
inc edi
jmp 0x4c487f
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 0x4c42e6
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 0x4c487f
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x5e
je 0x4c4323
mov edx, dword [ebp - 0x64]
cmp byte [edx], 0x5f
je 0x4c4323
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x5d
je 0x4c4323
mov eax, dword [ebp - 0x64]
cmp byte [eax], 0x60
jne 0x4c4865
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 0x4c4357
mov ecx, dword [ebp - 0x64]
cmp byte [ecx + 3], 0x68
jne 0x4c4357
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x37
jmp 0x4c6132
cmp dword [ebp - 0x10], 0xffffffff
jne 0x4c43a0
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 0x4c4366
mov edx, edi
sub edx, dword [ebp - 0x100]
mov dword [ebp - 0xf8], edx
cmp dword [ebp - 0xc], 0
jne 0x4c448f
cmp dword [ebp - 0x10], 1
jg 0x4c43fd
mov byte [edi], 0
push dword [ebp - 0x6c]
push ebx
push dword [ebp - 0x70]
push 1
push dword [ebp - 0x64]
call fcn.004c2880
add esp, 0x14
push esi
push dword [ebp - 0x64]
mov ecx, dword [ebp - 0x64]
inc ecx
push ecx
call fcn.004cfa10
add esp, 0xc
inc edi
cmp dword [ebp - 0x10], 0
jne 0x4c43ea
mov eax, dword [ebp - 0x64]
mov byte [eax], 0x72
jmp 0x4c4a4b
mov dl, byte [ebp - 4]
add dl, 0x69
mov ecx, dword [ebp - 0x64]
mov byte [ecx], dl
inc dword [ebp - 0x64]
jmp 0x4c4487
mov byte [edi], 0
push dword [ebp - 0x6c]
push ebx
push dword [ebp - 0x70]
push 4
push dword [ebp - 0x64]
call fcn.004c2880
add esp, 0x14
push esi
push dword [ebp - 0x64]
mov eax, dword [ebp - 0x64]
add eax, 4
push eax
call fcn.004cfa10
add esp, 0xc
add edi, 4
mov dl, byte [ebp - 4]
add dl, 0x69
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 0x4c444e
xor edx, edx
jmp 0x4c4457
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 0x4c45a8
cmp dword [ebp - 0xc], 1
jle 0x4c459c
cmp dword [ebp + 0x28], 0
je 0x4c44fc
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 - 0x1b8], edx
fild dword [ebp - 0x1b8]
fild dword [ebp - 0x44]
fmulp st(1)
fcomp qword [0x4c6144]
fnstsw ax
sahf
ja 0x4c44de
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x108]
jge 0x4c44ec
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4c6132
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x108]
add dword [edx], ecx
jmp 0x4c459c
cmp dword [ebp - 0x58], 0
je 0x4c450e
cmp dword [ebp - 0x24], 0
jge 0x4c450e
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 0x4c459c
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x10c], ecx
push esi
push dword [ebp - 0x64]
push edi
call fcn.004cf9ec
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x10c]
jae 0x4c4580
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 + 0x24]
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 + 0x24]
mov byte [ecx + 1], dl
add dword [ebx + 0x24], 2
add eax, 2
cmp eax, dword [ebp - 0x10c]
jb 0x4c4544
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 0x4c4523
cmp dword [ebp - 0x10], 0
jle 0x4c45a8
mov eax, dword [ebp - 0xc]
sub dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jl 0x4c47ac
cmp dword [ebp + 0x28], 0
je 0x4c4623
cmp dword [ebp - 0x10], 0
jle 0x4c4623
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 - 0x1b8], ecx
fild dword [ebp - 0x1b8]
fmulp st(1)
fcomp qword [0x4c6144]
fnstsw ax
sahf
ja 0x4c4605
mov edx, dword [ebp + 0x28]
mov ecx, 0x7fffffeb
sub ecx, dword [edx]
cmp ecx, dword [ebp - 0x110]
jge 0x4c4613
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4c6132
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp - 0x110]
add dword [edx], ecx
jmp 0x4c472e
mov eax, dword [ebp - 0x10]
dec eax
mov dword [ebp - 0xf4], eax
cmp dword [ebp - 0xf4], 0
jl 0x4c472e
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x114], edx
mov cl, byte [ebp - 4]
add cl, 0x69
mov byte [edi], cl
inc edi
cmp dword [ebp - 0xf4], 0
je 0x4c4694
mov byte [edi], 0x5e
inc edi
cmp dword [ebp - 0xfc], 0
jne 0x4c4666
xor eax, eax
jmp 0x4c466e
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.004cf9ec
add esp, 0xc
mov eax, dword [ebp - 0x6c]
cmp eax, dword [ebp - 0x114]
jae 0x4c4710
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 0x4c46cc
mov ecx, 4
jmp 0x4c46d1
mov ecx, 1
add edx, ecx
sar edx, 8
mov ecx, dword [ebx + 0x24]
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 0x4c46f4
mov cl, 4
jmp 0x4c46f6
mov cl, 1
add dl, cl
and dl, 0xff
mov ecx, dword [ebx + 0x24]
mov byte [ecx + 1], dl
add dword [ebx + 0x24], 2
add eax, 2
cmp eax, dword [ebp - 0x114]
jb 0x4c46ac
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x6c], eax
add edi, esi
dec dword [ebp - 0xf4]
cmp dword [ebp - 0xf4], 0
jge 0x4c463a
cmp dword [ebp - 0xfc], 0
je 0x4c487f
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 0x4c4769
xor ecx, ecx
jmp 0x4c4775
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 0x4c473b
jmp 0x4c487f
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 0x4c487f
mov eax, dword [ebp - 0x124]
cmp byte [eax], 0x5d
je 0x4c487f
mov edx, dword [ebp - 0x124]
mov dword [ebp - 0x128], edx
push dword [ebp - 0x70]
push dword [ebp - 0x120]
push dword [ebp - 0x128]
call fcn.004c255a
add esp, 0xc
test eax, eax
je 0x4c4837
mov ecx, dword [ebp - 0x124]
add byte [ecx], 3
jmp 0x4c487f
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 0x4c4811
jmp 0x4c487f
mov ecx, dword [ebp - 0x64]
cmp byte [ecx], 0x6f
je 0x4c4a4b
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xb
jmp 0x4c6132
cmp dword [ebp - 0x80], 0
je 0x4c4a4b
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x41
jne 0x4c48c2
mov ecx, dword [ebp - 0x50]
cmp byte [ecx + 3], 0x10
je 0x4c48a3
mov eax, dword [ebp - 0x50]
cmp byte [eax + 3], 0xf
jne 0x4c48aa
mov edx, 2
jmp 0x4c48ac
xor edx, edx
mov eax, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [eax]
xor eax, eax
mov al, byte [ecx + 0x7477bc]
add edx, eax
add dword [ebp - 0x50], edx
jmp 0x4c48e4
mov edx, dword [ebp - 0x50]
cmp byte [edx], 0x27
je 0x4c48d2
mov ecx, dword [ebp - 0x50]
cmp byte [ecx], 0x34
jne 0x4c48e4
mov eax, dword [ebp - 0x50]
xor edx, edx
mov dl, byte [eax]
xor ecx, ecx
mov cl, byte [edx + 0x7477bc]
add dword [ebp - 0x50], ecx
mov eax, edi
sub eax, dword [ebp - 0x50]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
jle 0x4c4a4b
mov edx, dword [ebp - 0x50]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x4c4915.31
mov cl, byte [ecx + 0x4c491c]
jmp dword [ecx*4 + 0x4c493d]
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x28
jmp 0x4c4a4b
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x29
jmp 0x4c4a4b
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x2a
jmp 0x4c4a4b
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x2b
jmp 0x4c4a4b
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x42
jmp 0x4c4a4b
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x43
jmp 0x4c4a4b
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x44
jmp 0x4c4a4b
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x45
jmp 0x4c4a4b
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x35
jmp 0x4c4a4b
mov eax, dword [ebp - 0x50]
mov byte [eax], 0x36
jmp 0x4c4a4b
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x37
jmp 0x4c4a4b
mov ecx, dword [ebp - 0x50]
mov byte [ecx], 0x38
jmp 0x4c4a4b
push dword [ebp - 0x12c]
push dword [ebp - 0x50]
mov eax, dword [ebp - 0x50]
add eax, 3
push eax
call fcn.004cfa10
add esp, 0xc
add edi, 3
add dword [ebp - 0x12c], 3
mov edx, dword [ebp - 0x50]
mov byte [edx], 0x5d
mov byte [edi], 0x55
inc edi
mov ecx, dword [ebp - 0x12c]
sar ecx, 8
mov byte [edi], cl
mov al, byte [ebp - 0x12c]
and al, 0xff
mov byte [edi + 1], al
add edi, 2
mov edx, dword [ebp - 0x12c]
sar edx, 8
mov ecx, dword [ebp - 0x50]
mov byte [ecx + 1], dl
mov al, byte [ebp - 0x12c]
and al, 0xff
mov edx, dword [ebp - 0x50]
mov byte [edx + 2], al
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov eax, dword [ebp - 0x34]
or dword [ebx + 0x4c], eax
jmp 0x4c612a
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x98], edx
xor ecx, ecx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0x14], 0x5f
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x6c], eax
xor edx, edx
mov dword [ebp - 0x8c], edx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x2a
jne 0x4c4bbc
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 2
je 0x4c4bbc
mov dword [ebp - 0x134], str.ACCEPT
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x138], eax
xor edx, edx
mov dword [ebp - 0x64], edx
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], 2
jne 0x4c4ac0
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3a
jne 0x4c4ae9
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3b
jmp 0x4c6132
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4c4aff
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3c
jmp 0x4c6132
mov eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0x138]
mov dword [ebp - 0x130], eax
xor esi, esi
jmp 0x4c4b91
mov eax, dword [esi*8 + 0x746b78]
cmp eax, dword [ebp - 0x130]
jne 0x4c4b82
push dword [ebp - 0x130]
push dword [ebp - 0x134]
push dword [ebp - 0x138]
call fcn.004cfcd8
add esp, 0xc
test eax, eax
jne 0x4c4b82
cmp dword [esi*8 + 0x746b7c], 0x70
jne 0x4c4b76
mov dword [ebx + 0x50], 1
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x4c4b76
mov byte [edi], 0x71
inc edi
movzx edx, word [eax + 4]
sar edx, 8
mov byte [edi], dl
mov cl, byte [eax + 4]
and cl, 0xff
mov byte [edi + 1], cl
add edi, 2
mov eax, dword [eax]
test eax, eax
jne 0x4c4b57
mov al, byte [esi*8 + 0x746b7c]
mov byte [edi], al
inc edi
jmp 0x4c4b9d
mov edx, dword [esi*8 + 0x746b78]
inc edx
add dword [ebp - 0x134], edx
inc esi
cmp esi, dword [0x746bb0]
jl 0x4c4b12
cmp esi, dword [0x746bb0]
jl 0x4c612a
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3c
jmp 0x4c6132
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3f
jne 0x4c5af1
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x4c4c54
je 0x4c4cd3
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x4c4be9.34
jmp dword [ecx*4 + 0x4c4bf0]
cmp ecx, 0x43
jg 0x4c4c7b
je 0x4c51e9
sub ecx, 0x3c
je 0x4c5184
dec ecx
je 0x4c5150
dec ecx
je 0x4c51da
jmp case.0x4c4be9.34
sub ecx, 0x50
je 0x4c5297
sub ecx, 2
je 0x4c56e5
sub ecx, 0x2a
je 0x4c4cc9
jmp case.0x4c4be9.34
inc dword [ebp - 0x5c]
jmp 0x4c4c9f
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0
je 0x4c4caf
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
jne 0x4c4c9c
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0
jne 0x4c612a
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x12
jmp 0x4c6132
mov dword [ebp - 0x8c], 1
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x4c5b1f
mov dword [ebp - 0x14], 0x60
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3f
jne 0x4c4d19
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 2], 0x3d
je 0x4c5b1f
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 2], 0x21
je 0x4c5b1f
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 2], 0x3c
je 0x4c5b1f
mov byte [edi + 3], 0x64
mov dword [ebp - 0xa4], 3
mov dword [ebp - 0xa0], 0xffffffff
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x52
jne 0x4c4d57
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 2], 0x26
jne 0x4c4d57
mov dword [ebp - 0xb0], 0xffffffff
add dword [ebp - 0x5c], 2
mov byte [edi + 3], 0x66
jmp 0x4c4db1
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x3c
jne 0x4c4d6f
mov dword [ebp - 0xb0], 0x3e
inc dword [ebp - 0x5c]
jmp 0x4c4db1
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x27
jne 0x4c4d87
mov dword [ebp - 0xb0], 0x27
inc dword [ebp - 0x5c]
jmp 0x4c4db1
xor eax, eax
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2d
je 0x4c4da1
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x2b
jne 0x4c4db1
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx + 1]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x4c4dd3
inc dword [ebp - 0x5c]
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1c
jmp 0x4c6132
xor eax, eax
mov dword [ebp - 0x9c], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x150], edx
jmp 0x4c4e27
cmp dword [ebp - 0x9c], 0
jl 0x4c4e24
mov ecx, dword [ebp - 0x5c]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x747650], 4
je 0x4c4e1b
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
jmp 0x4c4e1e
or edx, 0xffffffff
mov dword [ebp - 0x9c], edx
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 0x4c4de9
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x150]
mov dword [ebp - 0x148], ecx
cmp dword [ebp - 0xb0], 0
jle 0x4c4e61
mov eax, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
jne 0x4c4e6c
mov ecx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
cmp byte [ecx], 0x29
je 0x4c4e7d
dec dword [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1a
jmp 0x4c6132
cmp dword [ebp + 0x28], 0
jne 0x4c5b1f
cmp dword [ebp - 0xa0], 0
jle 0x4c4f0a
cmp dword [ebp - 0x9c], 0
jg 0x4c4ea7
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x3a
jmp 0x4c6132
cmp dword [ebp - 0xa0], 0x2d
jne 0x4c4ebc
mov ecx, dword [ebx + 0x34]
sub ecx, dword [ebp - 0x9c]
inc ecx
jmp 0x4c4ec5
mov ecx, dword [ebp - 0x9c]
add ecx, dword [ebx + 0x34]
mov dword [ebp - 0x9c], ecx
cmp dword [ebp - 0x9c], 0
jle 0x4c4edf
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebx + 0x38]
jle 0x4c4eed
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4c6132
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 0x4c5b1f
mov ecx, dword [ebx + 0x28]
mov dword [ebp - 0x154], ecx
xor eax, eax
mov dword [ebp - 0x13c], eax
jmp 0x4c4f4e
push dword [ebp - 0x148]
mov edx, dword [ebp - 0x154]
add edx, 2
push edx
push dword [ebp - 0x150]
call fcn.004cfcd8
add esp, 0xc
test eax, eax
je 0x4c4f59
mov ecx, dword [ebx + 0x30]
add dword [ebp - 0x154], ecx
inc dword [ebp - 0x13c]
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebx + 0x2c]
jl 0x4c4f1d
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebx + 0x2c]
jge 0x4c4fa4
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
inc byte [edi + 3]
jmp 0x4c5b1f
test byte [ebp - 0x3c], 8
setne cl
and ecx, 1
push ecx
push dword [ebp - 0x148]
push dword [ebp - 0x150]
push ebx
call fcn.004c2045
add esp, 0x10
mov dword [ebp - 0x13c], eax
test eax, eax
jle 0x4c4fee
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
inc byte [edi + 3]
jmp 0x4c5b1f
cmp dword [ebp - 0xb0], 0
je 0x4c5005
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
jmp 0x4c6132
mov edx, dword [ebp - 0x150]
cmp byte [edx], 0x52
jne 0x4c50cb
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0x13c], 1
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebp - 0x148]
jge 0x4c5097
mov edx, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x13c]
xor eax, eax
mov al, byte [edx + ecx]
test byte [eax + 0x747650], 4
jne 0x4c505c
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4c6132
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 0x4c5034
cmp dword [ebp - 0x9c], 0
jne 0x4c50aa
mov dword [ebp - 0x9c], 0xffff
mov byte [edi + 3], 0x66
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 0x4c5b1f
cmp dword [ebp - 0x148], 6
jne 0x4c5100
push 6
push str.DEFINE
push dword [ebp - 0x150]
call fcn.004cfcd8
add esp, 0xc
test eax, eax
jne 0x4c5100
mov byte [edi + 3], 0x68
mov dword [ebp - 0xa4], 1
jmp 0x4c5b1f
cmp dword [ebp - 0x9c], 0
jle 0x4c5131
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebx + 0x38]
jg 0x4c5131
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 0x4c5b1f
cmp dword [ebp - 0x9c], 0
jne 0x4c5141
mov eax, 0x23
jmp 0x4c5146
mov eax, 0xf
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
jmp 0x4c6132
mov dword [ebp - 0x14], 0x58
inc dword [ebp - 0x5c]
jmp 0x4c5b1f
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x29
jne 0x4c5178
mov byte [edi], 0x6f
inc edi
xor eax, eax
mov dword [ebp - 0x64], eax
jmp 0x4c612a
mov dword [ebp - 0x14], 0x59
jmp 0x4c5b1f
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 1]
sub cl, 0x21
je 0x4c51a4
sub cl, 0x1c
jne 0x4c51b4
mov dword [ebp - 0x14], 0x5a
add dword [ebp - 0x5c], 2
jmp 0x4c5b1f
mov dword [ebp - 0x14], 0x5b
add dword [ebp - 0x5c], 2
jmp 0x4c5b1f
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.0x4c4be9.39
inc dword [ebp - 0x5c]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x18
jmp 0x4c6132
mov dword [ebp - 0x14], 0x5d
inc dword [ebp - 0x5c]
jmp 0x4c5b1f
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 0x4c521e
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 + 0x747650], 4
jne 0x4c5201
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4c5247
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x27
jmp 0x4c6132
cmp dword [ebp - 0x158], 0xff
jle 0x4c5261
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x26
jmp 0x4c6132
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 0x4c612a
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3d
je 0x4c52aa
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3e
jne 0x4c52cb
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 0x4c557e
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3c
je case.0x4c4be9.39
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x29
jmp 0x4c6132
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3c
jne 0x4c52f0
mov eax, 0x3e
jmp 0x4c52f5
mov eax, 0x27
mov dword [ebp - 0xb0], eax
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x150], edx
jmp 0x4c530c
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 0x4c5309
mov ecx, dword [ebp - 0x5c]
sub ecx, dword [ebp - 0x150]
mov dword [ebp - 0x148], ecx
cmp dword [ebp + 0x28], 0
je 0x4c539e
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
je 0x4c534e
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x2a
jmp 0x4c6132
cmp dword [ebx + 0x2c], 0x2710
jl 0x4c5365
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x31
jmp 0x4c6132
mov edx, dword [ebp - 0x148]
add edx, 3
cmp edx, dword [ebx + 0x30]
jle 0x4c555f
mov ecx, dword [ebp - 0x148]
add ecx, 3
mov dword [ebx + 0x30], ecx
cmp dword [ebp - 0x148], 0x20
jle 0x4c555f
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x4c6132
xor edx, edx
mov dword [ebp - 0x15c], edx
mov ecx, dword [ebx + 0x28]
mov dword [ebp - 0x154], ecx
xor eax, eax
mov dword [ebp - 0x13c], eax
jmp 0x4c5488
push dword [ebp - 0x148]
mov edx, dword [ebp - 0x154]
add edx, 2
push edx
push dword [ebp - 0x150]
call fcn.004cfd00
add esp, 0xc
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x160], 0
jne 0x4c5448
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x148]
cmp byte [ecx + eax + 2], 0
jne 0x4c543e
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 eax, dword [ebx + 0x34]
inc eax
cmp ecx, eax
je 0x4c5432
test byte [ebp - 0x3a], 8
jne 0x4c5432
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x2b
jmp 0x4c6132
mov dword [ebp - 0x15c], 1
jmp 0x4c5448
mov dword [ebp - 0x160], 0xffffffff
cmp dword [ebp - 0x160], 0
jge 0x4c5479
mov ecx, dword [ebx + 0x2c]
sub ecx, dword [ebp - 0x13c]
imul ecx, dword [ebx + 0x30]
push ecx
push dword [ebp - 0x154]
mov eax, dword [ebp - 0x154]
add eax, dword [ebx + 0x30]
push eax
call fcn.004cfa10
add esp, 0xc
jmp 0x4c5497
mov edx, dword [ebx + 0x30]
add dword [ebp - 0x154], edx
inc dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebx + 0x2c]
jl 0x4c53bc
cmp dword [ebp - 0x15c], 0
jne 0x4c5511
mov eax, dword [ebx + 0x28]
mov dword [ebp - 0x164], eax
xor edx, edx
mov dword [ebp - 0x13c], edx
jmp 0x4c5506
mov ecx, dword [ebp - 0x164]
cmp ecx, dword [ebp - 0x154]
je 0x4c54f1
mov eax, dword [ebp - 0x164]
xor edx, edx
mov dl, byte [eax]
shl edx, 8
mov ecx, dword [ebp - 0x164]
xor eax, eax
mov al, byte [ecx + 1]
or edx, eax
mov ecx, dword [ebx + 0x34]
inc ecx
cmp edx, ecx
jne 0x4c54f7
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x41
jmp 0x4c6132
dec dword [ebp - 0x13c]
mov eax, dword [ebx + 0x30]
add dword [ebp - 0x164], eax
inc dword [ebp - 0x13c]
mov edx, dword [ebp - 0x13c]
cmp edx, dword [ebx + 0x2c]
jl 0x4c54b3
mov ecx, dword [ebx + 0x34]
inc ecx
sar ecx, 8
mov eax, dword [ebp - 0x154]
mov byte [eax], cl
mov dl, byte [ebx + 0x34]
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.004cf9ec
add esp, 0xc
mov edx, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x148]
mov byte [edx + ecx + 2], 0
inc dword [ebx + 0x2c]
inc dword [ebp - 0x5c]
jmp 0x4c5b00
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 0x4c558f
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 0x4c558c
mov edx, dword [ebp - 0x5c]
sub edx, dword [ebp - 0x150]
mov dword [ebp - 0x148], edx
cmp dword [ebp + 0x28], 0
je 0x4c560c
cmp dword [ebp - 0x148], 0
jne 0x4c55cb
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x3e
jmp 0x4c6132
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
je 0x4c55e8
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x2a
jmp 0x4c6132
cmp dword [ebp - 0x148], 0x20
jle 0x4c55ff
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
jmp 0x4c6132
xor edx, edx
mov dword [ebp - 0x9c], edx
jmp 0x4c56d3
mov ecx, dword [ebx + 0x28]
mov dword [ebp - 0x154], ecx
xor eax, eax
mov dword [ebp - 0x13c], eax
jmp 0x4c5663
push dword [ebp - 0x148]
mov edx, dword [ebp - 0x154]
add edx, 2
push edx
push dword [ebp - 0x150]
call fcn.004cfcd8
add esp, 0xc
test eax, eax
jne 0x4c5654
mov ecx, dword [ebp - 0x154]
mov eax, dword [ebp - 0x148]
cmp byte [ecx + eax + 2], 0
je 0x4c566e
mov edx, dword [ebx + 0x30]
add dword [ebp - 0x154], edx
inc dword [ebp - 0x13c]
mov ecx, dword [ebp - 0x13c]
cmp ecx, dword [ebx + 0x2c]
jl 0x4c561f
mov eax, dword [ebp - 0x13c]
cmp eax, dword [ebx + 0x2c]
jge 0x4c569b
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 0x4c56d3
test byte [ebp - 0x3c], 8
setne cl
and ecx, 1
push ecx
push dword [ebp - 0x148]
push dword [ebp - 0x150]
push ebx
call fcn.004c2045
add esp, 0x10
mov dword [ebp - 0x9c], eax
test eax, eax
jg 0x4c56d3
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4c6132
cmp dword [ebp - 0x88], 0
jne 0x4c580d
jmp 0x4c5f8b
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 0x4c5725
inc dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x747650], 4
jne 0x4c5746
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3f
jmp 0x4c6132
cmp dword [ebp - 0xa0], 0x2d
jne 0x4c5746
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx + 1]
test byte [ecx + 0x747650], 4
je case.0x4c4be9.34
inc dword [ebp - 0x5c]
xor eax, eax
mov dword [ebp - 0x9c], eax
jmp 0x4c5770
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 + 0x747650], 4
jne 0x4c5750
mov eax, dword [ebp - 0x5c]
xor edx, edx
mov dl, byte [eax]
cmp edx, dword [ebp - 0xb0]
je 0x4c579d
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1d
jmp 0x4c6132
cmp dword [ebp - 0xa0], 0x2d
jne 0x4c57e4
cmp dword [ebp - 0x9c], 0
jne 0x4c57bd
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x4c6132
mov edx, dword [ebx + 0x34]
sub edx, dword [ebp - 0x9c]
inc edx
mov dword [ebp - 0x9c], edx
cmp dword [ebp - 0x9c], 0
jg 0x4c580d
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xf
jmp 0x4c6132
cmp dword [ebp - 0xa0], 0x2b
jne 0x4c580d
cmp dword [ebp - 0x9c], 0
jne 0x4c5804
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3a
jmp 0x4c6132
mov edx, dword [ebx + 0x34]
add dword [ebp - 0x9c], edx
mov dword [ebp - 0x64], edi
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x168], ecx
cmp dword [ebp + 0x28], 0
jne 0x4c58f6
mov byte [edi], 0
cmp dword [ebp - 0x9c], 0
je 0x4c5849
push dword [ebp - 0x9c]
push dword [ebp - 0x70]
push dword [ebx + 0x14]
call fcn.004c241f
add esp, 0xc
mov dword [ebp - 0x168], eax
cmp dword [ebp - 0x168], 0
jne 0x4c58b2
test byte [ebp - 0x3c], 8
setne al
and eax, 1
push eax
push dword [ebp - 0x9c]
push 0
push ebx
call fcn.004c2045
add esp, 0x10
test eax, eax
jge 0x4c5880
mov edx, dword [ebp + 0x14]
mov dword [edx], 0xf
jmp 0x4c6132
mov ecx, dword [ebx + 0x14]
add ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x168], ecx
lea eax, [edi + 4]
sub eax, dword [ebx + 0x14]
sar eax, 8
mov edx, dword [ebx + 0x24]
mov byte [edx], al
lea ecx, [edi + 4]
sub ecx, dword [ebx + 0x14]
and cl, 0xff
mov eax, dword [ebx + 0x24]
mov byte [eax + 1], cl
add dword [ebx + 0x24], 2
jmp 0x4c58f6
mov edx, dword [ebp - 0x168]
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
mov eax, dword [ebp - 0x168]
xor edx, edx
mov dl, byte [eax + 2]
or ecx, edx
jne 0x4c58f6
push dword [ebp - 0x70]
push dword [ebp + 0x20]
push edi
push dword [ebp - 0x168]
call fcn.004c27a6
add esp, 0x10
test eax, eax
je 0x4c58f6
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x28
jmp 0x4c6132
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 - 0x168]
sub eax, dword [ebx + 0x14]
sar eax, 8
mov byte [edi + 1], al
mov edx, dword [ebp - 0x168]
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 0x4c612a
mov dword [ebp - 0x20], 0xffffffff
jmp 0x4c612a
xor ecx, ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
lea eax, [ebp - 0x140]
mov dword [ebp - 0x14c], eax
jmp 0x4c5a20
mov edx, dword [ebp - 0x5c]
inc dword [ebp - 0x5c]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x4c5999
je 0x4c59ca
sub eax, 0x2d
je 0x4c59aa
sub eax, 0x1d
je 0x4c59b8
sub eax, 0xb
je 0x4c59f6
sub eax, 3
je 0x4c5a04
jmp 0x4c5a0f
sub eax, 0x6d
je 0x4c59d5
sub eax, 6
je 0x4c59e0
sub eax, 5
je 0x4c59eb
jmp 0x4c5a0f
lea edx, [ebp - 0x144]
mov dword [ebp - 0x14c], edx
jmp 0x4c5a20
mov ecx, dword [ebp - 0x14c]
or dword [ecx], 0x80000
or dword [ebx + 0x48], 0x10
jmp 0x4c5a20
mov eax, dword [ebp - 0x14c]
or dword [eax], 1
jmp 0x4c5a20
mov edx, dword [ebp - 0x14c]
or dword [edx], 2
jmp 0x4c5a20
mov ecx, dword [ebp - 0x14c]
or dword [ecx], 4
jmp 0x4c5a20
mov eax, dword [ebp - 0x14c]
or dword [eax], 8
jmp 0x4c5a20
mov edx, dword [ebp - 0x14c]
or dword [edx], 0x200
jmp 0x4c5a20
mov ecx, dword [ebp - 0x14c]
or dword [ecx], 0x40
jmp 0x4c5a20
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xc
dec dword [ebp - 0x5c]
jmp 0x4c6132
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4c5a34
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3a
jne 0x4c5972
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 0x4c5ae5
mov eax, dword [ebx + 0x14]
add eax, 3
cmp edi, eax
jne 0x4c5a7c
cmp dword [ebp + 0x28], 0
je 0x4c5a71
mov edx, dword [ebp + 0x28]
cmp dword [edx], 6
jne 0x4c5a7c
mov ecx, dword [ebp - 0x98]
mov dword [ebx + 0x44], ecx
jmp 0x4c5acd
mov eax, dword [ebp - 0x3c]
and eax, 7
mov edx, dword [ebp - 0x98]
and edx, 7
cmp eax, edx
je 0x4c5a9f
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 0x4c5ac8
mov ecx, 0x100
jmp 0x4c5aca
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 0x4c612a
mov dword [ebp - 0x14], 0x5e
inc dword [ebp - 0x5c]
jmp 0x4c5b1f
test byte [ebp - 0x3b], 0x10
je 0x4c5b00
mov dword [ebp - 0x14], 0x5e
jmp 0x4c5b1f
inc dword [ebx + 0x34]
mov eax, dword [ebx + 0x34]
sar eax, 8
mov byte [edi + 3], al
mov dl, byte [ebx + 0x34]
and dl, 0xff
mov byte [edi + 4], dl
mov dword [ebp - 0xa4], 2
cmp dword [ebp - 0x14], 0x5d
jl 0x4c5b29
mov ecx, edi
jmp 0x4c5b2b
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 + 0x4c]
mov dword [ebp - 0x38], edx
xor eax, eax
mov dword [ebp - 0x44], eax
cmp dword [ebp + 0x28], 0
jne 0x4c5b4b
xor edx, edx
jmp 0x4c5b4e
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 0x4c5b7d
cmp dword [ebp - 0x14], 0x5b
je 0x4c5b7d
xor eax, eax
jmp 0x4c5b82
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.004c614c
add esp, 0x34
test eax, eax
je 0x4c6132
cmp dword [ebp - 0x14], 0x60
jne 0x4c5c54
cmp dword [ebp + 0x28], 0
jne 0x4c5c54
mov dword [ebp - 0x16c], edi
xor edx, edx
mov dword [ebp - 0x170], edx
inc dword [ebp - 0x170]
mov ecx, dword [ebp - 0x16c]
xor eax, eax
mov al, byte [ecx + 1]
shl eax, 8
mov edx, dword [ebp - 0x16c]
xor ecx, ecx
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x16c], eax
mov eax, dword [ebp - 0x16c]
cmp byte [eax], 0x55
jne 0x4c5bcd
cmp byte [edi + 3], 0x68
jne 0x4c5c25
cmp dword [ebp - 0x170], 1
jle 0x4c5c1c
mov edx, dword [ebp + 0x14]
mov dword [edx], 0x36
jmp 0x4c6132
mov dword [ebp - 0x14], 0x68
jmp 0x4c5c54
cmp dword [ebp - 0x170], 2
jle 0x4c5c3c
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0x1b
jmp 0x4c6132
cmp dword [ebp - 0x170], 1
jne 0x4c5c54
or eax, 0xffffffff
mov dword [ebp - 0xa8], eax
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0x5c]
cmp byte [edx], 0x29
je 0x4c5c6a
mov ecx, dword [ebp + 0x14]
mov dword [ecx], 0xe
jmp 0x4c6132
cmp dword [ebp + 0x28], 0
je 0x4c5cbe
mov eax, dword [ebp + 0x28]
mov edx, 0x7fffffeb
sub edx, dword [eax]
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffffa
cmp edx, ecx
jge 0x4c5c92
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
jmp 0x4c6132
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 0x4c612a
mov edi, dword [ebp - 0x50]
cmp dword [ebp - 0x14], 0x68
je 0x4c612a
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 0x4c5d4f
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c5d13
cmp dword [ebp - 0xac], 0
jl 0x4c5d03
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x58], 1
jmp 0x4c5d0a
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4c5d34
cmp dword [ebp - 0xac], 0
jl 0x4c5d34
cmp dword [ebp - 0xa8], 0
jge 0x4c5d34
mov edx, dword [ebp - 0xac]
or edx, dword [ebp - 0x38]
mov dword [ebp - 0xa8], edx
cmp dword [ebp - 0xa8], 0
jl 0x4c612a
mov ecx, dword [ebp - 0xa8]
mov dword [ebp - 0x24], ecx
jmp 0x4c612a
cmp dword [ebp - 0x14], 0x58
jne 0x4c612a
cmp dword [ebp - 0xa8], 0
jl 0x4c612a
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x24], eax
jmp 0x4c612a
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x60], edx
push 0
push dword [ebp - 0x3c]
push dword [ebx + 0x34]
push dword [ebp + 0x14]
lea ecx, [ebp - 0x5c]
push ecx
call fcn.004c18a9
add esp, 0x14
mov esi, eax
mov eax, dword [ebp + 0x14]
cmp dword [eax], 0
jne 0x4c6132
test esi, esi
jge 0x4c6045
mov edx, esi
neg edx
cmp edx, 0x1a
jne 0x4c5dd7
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x5c
jne 0x4c5dcb
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 2], 0x45
jne 0x4c5dcb
add dword [ebp - 0x5c], 2
jmp 0x4c612a
mov dword [ebp - 0x54], 1
jmp 0x4c612a
mov edx, esi
neg edx
cmp edx, 0x19
je 0x4c612a
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c5e03
mov ecx, esi
neg ecx
cmp ecx, 5
jle 0x4c5e03
mov eax, esi
neg eax
cmp eax, 0x17
jge 0x4c5e03
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 0x4c5f1a
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x6c], edx
inc dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x3c
jne 0x4c5e34
mov eax, 0x3e
jmp 0x4c5e39
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 0x4c5ee2
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x2d
je 0x4c5ee2
mov dword [ebp - 0x174], 1
mov eax, dword [ebp - 0x5c]
inc eax
jmp 0x4c5e98
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x4c5e8a
xor edx, edx
mov dword [ebp - 0x174], edx
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0xc]
test byte [edx + ecx], 0x10
je 0x4c5ea9
inc eax
cmp byte [eax], 0
je 0x4c5ea9
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xb0]
jne 0x4c5e75
movzx eax, byte [eax]
cmp eax, dword [ebp - 0xb0]
je 0x4c5ec2
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x39
jmp 0x4c612a
cmp dword [ebp - 0x174], 0
je 0x4c5ed3
inc dword [ebp - 0x5c]
jmp 0x4c56f2
mov dword [ebp - 0x88], 1
jmp 0x4c557e
mov eax, dword [ebp - 0x5c]
add eax, 2
jmp 0x4c5eeb
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x747650], 4
jne 0x4c5eea
xor ecx, ecx
mov cl, byte [eax]
cmp ecx, dword [ebp - 0xb0]
je 0x4c5f12
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x39
jmp 0x4c612a
inc dword [ebp - 0x5c]
jmp 0x4c56f2
mov edx, esi
neg edx
cmp edx, 0x1c
jne 0x4c5f77
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx + 1], 0x3c
je 0x4c5f3e
mov eax, dword [ebp - 0x5c]
cmp byte [eax + 1], 0x27
je 0x4c5f3e
mov edx, dword [ebp - 0x5c]
cmp byte [edx + 1], 0x7b
jne 0x4c5f77
xor ecx, ecx
mov dword [ebp - 0x88], ecx
inc dword [ebp - 0x5c]
mov eax, dword [ebp - 0x5c]
cmp byte [eax], 0x3c
jne 0x4c5f58
mov edx, 0x3e
jmp 0x4c5f6c
mov ecx, dword [ebp - 0x5c]
cmp byte [ecx], 0x27
jne 0x4c5f67
mov edx, 0x27
jmp 0x4c5f6c
mov edx, 0x7d
mov dword [ebp - 0xb0], edx
jmp 0x4c557e
mov eax, esi
neg eax
cmp eax, 0x1d
jl 0x4c5ff5
neg esi
add esi, 0xffffffe3
mov dword [ebp - 0x9c], esi
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c5f98
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 0x4c5fd0
mov ecx, dword [ebp - 0x9c]
mov edx, 1
shl edx, cl
jmp 0x4c5fd5
mov edx, 1
or dword [ebx + 0x40], edx
mov eax, dword [ebp - 0x9c]
cmp eax, dword [ebx + 0x3c]
jle 0x4c612a
mov ecx, dword [ebp - 0x9c]
mov dword [ebx + 0x3c], ecx
jmp 0x4c612a
mov eax, esi
neg eax
cmp eax, 0x16
je 0x4c6010
mov edx, esi
neg edx
cmp edx, 0xf
je 0x4c6010
mov ecx, esi
neg ecx
cmp ecx, 0x10
jne 0x4c601e
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2d
jmp 0x4c6132
mov edx, esi
neg edx
cmp edx, 5
jle 0x4c6034
mov ecx, esi
neg ecx
cmp ecx, 0x17
jge 0x4c6034
mov eax, edi
jmp 0x4c6036
xor eax, eax
mov dword [ebp - 0x64], eax
mov edx, esi
neg dl
mov byte [edi], dl
inc edi
jmp 0x4c612a
mov ecx, esi
mov byte [ebp - 0xbc], cl
mov dword [ebp - 0xb4], 1
jmp 0x4c606b
mov dword [ebp - 0xb4], 1
mov eax, esi
mov byte [ebp - 0xbc], al
mov dword [ebp - 0x64], edi
test byte [ebp - 0x3c], 1
je 0x4c6078
mov dl, 0x1d
jmp 0x4c607a
mov dl, 0x1c
mov byte [edi], dl
inc edi
xor esi, esi
cmp esi, dword [ebp - 0xb4]
jge 0x4c609a
mov al, byte [ebp + esi - 0xbc]
mov byte [edi], al
inc edi
inc esi
cmp esi, dword [ebp - 0xb4]
jl 0x4c6087
cmp byte [ebp - 0xbc], 0xd
je 0x4c60ac
cmp byte [ebp - 0xbc], 0xa
jne 0x4c60b0
or dword [ebx + 0x48], 0x20
cmp dword [ebp - 0x20], 0xfffffffe
jne 0x4c6101
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0xb4], 1
je 0x4c60d2
cmp dword [ebp - 0x30], 0
jne 0x4c60f6
xor ecx, ecx
mov cl, byte [ebp - 0xbc]
or ecx, dword [ebp - 0x30]
mov dword [ebp - 0x20], ecx
cmp dword [ebp - 0xb4], 1
je 0x4c612a
xor eax, eax
mov al, byte [edi - 1]
or eax, dword [ebx + 0x4c]
mov dword [ebp - 0x24], eax
jmp 0x4c612a
or edx, 0xffffffff
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
jmp 0x4c612a
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 0x4c611c
cmp dword [ebp - 0x30], 0
jne 0x4c612a
xor eax, eax
mov al, byte [edi - 1]
or eax, dword [ebp - 0x30]
or eax, dword [ebx + 0x4c]
mov dword [ebp - 0x24], eax
inc dword [ebp - 0x5c]
jmp 0x4c31af
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