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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde0
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x18], eax
xor edx, edx
mov dword [ebp - 0x1c], edx
xor ecx, ecx
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov eax, dword [ebp - 4]
mov edx, dword [eax]
xor eax, eax
mov dword [ebp - 0x48], edx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], eax
xor eax, eax
mov edx, dword [ebp - 8]
mov esi, dword [edx]
xor edx, edx
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x64], edx
mov ecx, dword [ebp - 0xc]
xor edx, edx
mov eax, dword [ecx]
xor ecx, ecx
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x70], edx
mov dword [ebp - 0x74], ecx
xor eax, eax
mov dword [ebp - 0x78], eax
test byte [ebp - 0x47], 8
setne dl
and edx, 1
mov dword [ebp - 0x80], edx
mov edx, 0xfffffffe
test byte [ebp - 0x47], 2
setne cl
and ecx, 1
mov dword [ebp - 0x24], ecx
mov eax, dword [ebp - 0x24]
xor eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
test byte [ebp - 0x48], 1
je 0x4cce0e
mov eax, pe_nt_image_headers32
jmp 0x4cce10
xor eax, eax
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp + 8]
test eax, eax
movzx edi, byte [edx]
je 0x4ccebd
mov edx, dword [ebx + 0x10]
add edx, 0x1000
cmp esi, edx
jbe 0x4cce3f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x4d0c80
mov eax, dword [ebp - 0x54]
cmp esi, eax
jae 0x4cce49
mov esi, dword [ebp - 0x54]
mov eax, dword [ebp + 8]
mov edx, 0x7fffffeb
mov ecx, dword [eax]
mov eax, esi
sub edx, ecx
mov ecx, dword [ebp - 0x54]
sub eax, ecx
cmp edx, eax
jge 0x4cce6e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x4d0c80
mov eax, esi
mov edx, dword [ebp - 0x54]
sub eax, edx
mov ecx, dword [ebp + 8]
add dword [ecx], eax
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x4cceb5
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
cmp edx, ecx
jbe 0x4cceb8
mov eax, esi
mov edx, dword [ebp - 0x70]
sub eax, edx
push eax
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x58]
push eax
call fcn.004cad9c
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x58]
sub edx, ecx
add esp, 0xc
mov eax, dword [ebp - 0x58]
sub esi, edx
mov dword [ebp - 0x70], eax
jmp 0x4cceb8
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x54], esi
jmp 0x4cceda
mov eax, dword [ebx + 0x10]
add eax, 0x1000
mov edx, dword [ebx + 0x20]
cmp eax, edx
jae 0x4cceda
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x34
jmp 0x4d0c80
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4ccf42
test edi, edi
je 0x4ccf42
cmp edi, 0x5c
jne 0x4ccf02
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x4ccf02
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x4d0c78
mov edx, dword [ebp - 0x74]
test edx, edx
je 0x4ccf22
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4ccf1d
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.004cc1dc
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x47], 0x40
je 0x4d0b41
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.004cc1b0
mov esi, eax
jmp 0x4d0b41
cmp edi, 0x2a
je 0x4ccf67
cmp edi, 0x2b
je 0x4ccf67
cmp edi, 0x3f
je 0x4ccf67
cmp edi, 0x7b
jne 0x4ccf63
mov eax, dword [ebp - 0x68]
inc eax
call fcn.004cb3c8
test eax, eax
jne 0x4ccf67
xor edx, edx
jmp 0x4ccf6c
mov edx, 1
mov dword [ebp - 0xa0], edx
mov ecx, dword [ebp - 0xa0]
test ecx, ecx
jne 0x4ccfa7
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4ccfa7
mov edx, dword [ebp - 0x4c]
add dword [ebp - 0x4c], 0xffffffff
test edx, edx
jg 0x4ccfa7
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4ccfa2
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x74]
call fcn.004cc1dc
xor eax, eax
mov dword [ebp - 0x74], eax
test byte [ebp - 0x48], 8
je 0x4cd062
mov edx, dword [ebx + 0xc]
test byte [edx + edi], 1
jne 0x4d0c78
cmp edi, 0x23
jne 0x4cd062
jmp 0x4cd043
mov ecx, dword [ebx + 0x50]
test ecx, ecx
je 0x4ccfff
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebp - 0x68]
cmp eax, edx
jbe 0x4ccff4
lea ecx, [ebx + 0x54]
push ecx
mov eax, dword [ebp - 0x80]
push eax
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x50]
mov eax, dword [ebp - 0x68]
call fcn.004db110
test eax, eax
jne 0x4ccff8
xor edx, edx
jmp 0x4cd036
mov edx, 1
jmp 0x4cd036
mov ecx, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x54]
sub ecx, eax
mov edx, dword [ebp - 0x68]
cmp ecx, edx
jb 0x4cd02d
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
mov dl, byte [ebx + 0x58]
cmp al, dl
jne 0x4cd02d
mov ecx, dword [ebx + 0x54]
dec ecx
je 0x4cd031
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
mov cl, byte [ebx + 0x59]
cmp dl, cl
je 0x4cd031
xor edx, edx
jmp 0x4cd036
mov edx, 1
test edx, edx
je 0x4cd043
mov eax, dword [ebx + 0x54]
dec eax
add dword [ebp - 0x68], eax
jmp 0x4cd053
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
test al, al
jne 0x4ccfc9
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x4d0c78
xor edi, edi
test byte [ebp - 0x47], 0x40
je 0x4cd083
mov eax, dword [ebp - 0xa0]
test eax, eax
jne 0x4cd083
mov dword [ebp - 0x74], esi
mov ecx, ebx
mov edx, dword [ebp - 0x68]
mov eax, esi
call fcn.004cc1b0
mov esi, eax
mov edx, edi
cmp edx, 0x3f
jg 0x4cd0d1
je 0x4ce7b0
cmp edx, 0x29
jg 0x4cd0b3
je 0x4cd109
sub edx, 1
jb 0x4cd109
sub edx, 0x23
je 0x4cd189
sub edx, 4
je 0x4cf4d4
jmp 0x4d0b41
sub edx, 0x2a
je 0x4ce792
dec edx
je 0x4ce7a0
sub edx, 3
je 0x4cd197
jmp 0x4d0b41
cmp edx, 0x5e
jg 0x4cd0f8
je 0x4cd166
sub edx, 0x5b
je 0x4cd1e1
dec edx
je 0x4d07ca
dec edx
je 0x4cd1c9
jmp 0x4d0b41
sub edx, 0x7b
je 0x4ce75f
dec edx
je 0x4cd109
jmp 0x4d0b41
mov ecx, dword [ebp + 0x18]
mov eax, dword [ebp - 0x2c]
mov dword [ecx], eax
mov edx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x30]
mov dword [edx], ecx
mov eax, dword [ebp - 8]
mov dword [eax], esi
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x68]
mov dword [edx], ecx
mov eax, dword [ebp + 8]
test eax, eax
je 0x4cd15c
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
mov edx, esi
sub ecx, eax
mov eax, dword [ebp - 0x54]
sub edx, eax
cmp ecx, edx
jge 0x4cd152
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x14
jmp 0x4d0c80
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x54]
sub esi, ecx
add dword [eax], esi
mov eax, 1
jmp 0x4d0c8a
test byte [ebp - 0x48], 2
je 0x4cd17b
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4cd17b
mov dword [ebp - 0x2c], 0xffffffff
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov byte [esi], 0x1a
inc esi
jmp 0x4d0c78
xor eax, eax
mov dword [ebp - 0x70], eax
mov byte [esi], 0x1b
inc esi
jmp 0x4d0c78
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4cd1a6
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 4
je 0x4cd1bf
mov dl, 0xd
jmp 0x4cd1c1
mov dl, 0xc
mov byte [esi], dl
inc esi
jmp 0x4d0c78
test byte [ebx + 0x43], 2
je 0x4d0b41
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x40
jmp 0x4d0c80
mov dword [ebp - 0x70], esi
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
je 0x4cd204
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2e
je 0x4cd204
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3d
jne 0x4cd233
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.004cc068
test eax, eax
je 0x4cd233
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3a
jne 0x4cd224
mov edx, 0xd
jmp 0x4cd229
mov edx, 0x1f
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x4d0c80
xor ecx, ecx
mov dword [ebp - 0x94], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
cmp edi, 0x5c
jne 0x4cd277
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x4cd259
inc dword [ebp - 0x68]
jmp 0x4cd23b
push 3
push 0x5bb909
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
call fcn.004cadac
add esp, 0xc
test eax, eax
jne 0x4cd292
add dword [ebp - 0x68], 3
jmp 0x4cd23b
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x4cd292
cmp edi, 0x5e
jne 0x4cd292
mov dword [ebp - 0x94], 1
jmp 0x4cd23b
cmp edi, 0x5d
jne 0x4cd2ca
test byte [ebx + 0x43], 2
je 0x4cd2ca
mov edx, dword [ebp - 0x94]
test edx, edx
je 0x4cd2ab
mov cl, 0xd
jmp 0x4cd2ad
mov cl, 0x6d
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x4cd2bf
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
jmp 0x4d0c78
xor eax, eax
xor edx, edx
mov dword [ebp - 0x98], eax
mov dword [ebp - 0xac], edx
mov dword [ebp - 0xb0], 0xffffffff
push 0x20
lea ecx, [ebp - 0x1fc]
push 0
push ecx
call fcn.004cada4
xor eax, eax
lea edx, [esi + 4]
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x84], edx
mov ecx, dword [ebp - 0x84]
add esp, 0xc
test edi, edi
mov dword [ebp - 0x88], ecx
je 0x4ce54c
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4cd3e3
cmp edi, 0x7f
jle 0x4cd3e3
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
cmp edi, 0xc0
jl 0x4cd3e3
mov eax, edi
and eax, 0x3f
xor edx, edx
mov dl, byte [eax + 0x5bbd74]
mov dword [ebp - 0xe4], edx
mov ecx, dword [ebp - 0xe4]
add ecx, ecx
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xe8], ecx
mov ecx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe4]
mov edx, dword [eax*4 + 0x5bb9b8]
and edi, edx
shl edi, cl
mov dword [ebp - 0xe0], 1
mov eax, dword [ebp - 0x68]
lea edx, [eax + 1]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xe4]
cmp ecx, eax
jg 0x4cd3da
sub dword [ebp - 0xe8], 6
mov ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0x1d8]
xor eax, eax
mov al, byte [edx]
and eax, 0x3f
shl eax, cl
or edi, eax
inc dword [ebp - 0xe0]
inc dword [ebp - 0x1d8]
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xe4]
cmp edx, ecx
jle 0x4cd3a0
mov eax, dword [ebp - 0xe4]
add dword [ebp - 0x68], eax
mov edx, dword [ebp + 8]
test edx, edx
je 0x4cd409
mov ecx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
sub ecx, eax
mov edx, dword [ebp + 8]
add dword [edx], ecx
mov ecx, dword [ebp - 0x88]
mov dword [ebp - 0x84], ecx
mov eax, dword [ebp - 0x60]
test eax, eax
je 0x4cd435
cmp edi, 0x5c
jne 0x4cdf67
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x45
jne 0x4cdf67
xor eax, eax
mov dword [ebp - 0x60], eax
inc dword [ebp - 0x68]
jmp 0x4ce52b
cmp edi, 0x5b
jne 0x4cd6dd
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3a
je 0x4cd462
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2e
je 0x4cd462
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x3d
jne 0x4cd6dd
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
call fcn.004cc068
test eax, eax
je 0x4cd6dd
xor edx, edx
mov dword [ebp - 0xec], edx
mov ecx, dword [ebx + 8]
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3a
je 0x4cd49f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1f
jmp 0x4d0c80
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5e
jne 0x4cd4c4
mov dword [ebp - 0xec], 1
mov dword [ebp - 0x98], 1
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x68]
sub edx, eax
mov eax, dword [ebp - 0x68]
call fcn.004cc0ac
mov dword [ebp - 0xf0], eax
mov edx, dword [ebp - 0xf0]
test edx, edx
jge 0x4cd4f2
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1e
jmp 0x4d0c80
test byte [ebp - 0x48], 1
je 0x4cd50b
mov eax, dword [ebp - 0xf0]
cmp eax, 2
jg 0x4cd50b
xor edx, edx
mov dword [ebp - 0xf0], edx
mov ecx, dword [ebp - 0xf0]
lea ecx, [ecx + ecx*2]
mov dword [ebp - 0xf0], ecx
push 0x20
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x5badb0]
mov ecx, dword [ebp - 0xfc]
add edx, ecx
push edx
lea eax, [ebp - 0x21c]
push eax
call fcn.004cad94
add esp, 0xc
mov edx, dword [ebp - 0xf0]
mov ecx, dword [edx*4 + 0x5badb4]
mov dword [ebp - 0xf4], ecx
mov eax, dword [ebp - 0xf0]
mov edx, dword [eax*4 + 0x5badb8]
mov dword [ebp - 0xf8], edx
mov ecx, dword [ebp - 0xf4]
test ecx, ecx
jl 0x4cd60d
mov eax, dword [ebp - 0xf8]
test eax, eax
jl 0x4cd5c6
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1dc]
inc edi
mov cl, byte [edx]
or byte [eax], cl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cd5a2
jmp 0x4cd60d
xor edi, edi
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0xf4]
lea eax, [edx + ecx]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x1dc]
mov eax, dword [ebp - 0x1d8]
inc edi
mov cl, byte [edx]
not cl
and byte [eax], cl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4cd5e9
mov edx, dword [ebp - 0xf8]
test edx, edx
jge 0x4cd61d
neg dword [ebp - 0xf8]
mov ecx, dword [ebp - 0xf8]
dec ecx
jne 0x4cd62f
and byte [ebp - 0x21b], 0xc3
jmp 0x4cd641
mov eax, dword [ebp - 0xf8]
cmp eax, 2
jne 0x4cd641
and byte [ebp - 0x211], 0x7f
mov edx, dword [ebp - 0xec]
test edx, edx
je 0x4cd68b
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
or byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cd665
jmp 0x4cd6c7
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
lea edx, [ebp - 0x21c]
mov dword [ebp - 0x1dc], edx
mov ecx, dword [ebp - 0x1dc]
mov edx, dword [ebp - 0x1d8]
inc edi
mov al, byte [ecx]
or byte [edx], al
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4cd6a5
mov ecx, dword [ebp - 0x6c]
inc ecx
mov dword [ebp - 0x68], ecx
mov dword [ebp - 0xac], 0xa
jmp 0x4ce52b
cmp edi, 0x5c
jne 0x4cdf67
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.004caec4
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4d0c80
mov ecx, edi
neg ecx
cmp ecx, 5
jne 0x4cd719
mov edi, 8
jmp 0x4cd77a
mov eax, edi
neg eax
cmp eax, 0x16
jne 0x4cd729
mov edi, 0x58
jmp 0x4cd77a
mov eax, edi
neg eax
cmp eax, 0x11
jne 0x4cd739
mov edi, 0x52
jmp 0x4cd77a
mov eax, edi
neg eax
cmp eax, 0x1a
jne 0x4cd76d
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x4cd761
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
jne 0x4cd761
add dword [ebp - 0x68], 2
jmp 0x4ce52b
mov dword [ebp - 0x60], 1
jmp 0x4ce52b
mov ecx, edi
neg ecx
cmp ecx, 0x19
je 0x4ce52b
test edi, edi
jge 0x4cdf67
mov eax, dword [ebx + 8]
mov dword [ebp - 0x100], eax
add dword [ebp - 0xac], 2
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4cd99a
mov ecx, edi
neg ecx
add ecx, 0xfffffffa
cmp ecx, 5
ja case.default.0x4cd7ad
jmp dword [ecx*4 + 0x4cd7b4]
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cd7e9
jmp 0x4ce52b
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0x40]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4cd837
jmp 0x4ce52b
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cd880
jmp 0x4ce52b
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
lea ecx, [edx + 0xa0]
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4cd8d1
jmp 0x4ce52b
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1dc], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1d8], ecx
mov eax, dword [ebp - 0x1d8]
mov ecx, dword [ebp - 0x1dc]
inc edi
mov dl, byte [eax]
or byte [ecx], dl
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cd916
and byte [ebp - 0x1fb], 0xf7
jmp 0x4ce52b
mov dword [ebp - 0x98], 1
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov edx, dword [ebp - 0x100]
mov ecx, edx
mov dword [ebp - 0x1dc], ecx
mov eax, dword [ebp - 0x1dc]
mov ecx, dword [ebp - 0x1d8]
inc edi
mov dl, byte [eax]
not dl
or byte [ecx], dl
inc dword [ebp - 0x1d8]
inc dword [ebp - 0x1dc]
cmp edi, 0x20
jl 0x4cd96a
or byte [ebp - 0x1fb], 8
jmp 0x4ce52b
cmp edi, 0xfffffff9
je 0x4ce52b
cmp edi, 0xfffffffa
je 0x4ce52b
cmp edi, 0xfffffff5
je 0x4ce52b
cmp edi, 0xfffffff6
je 0x4ce52b
cmp edi, 0xfffffff7
je 0x4ce52b
cmp edi, 0xfffffff8
je 0x4ce52b
mov eax, edi
neg eax
cmp eax, 0x13
jne 0x4cdafd
or byte [ebp - 0x1fb], 2
or byte [ebp - 0x1f8], 1
or byte [ebp - 0x1e8], 1
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4ce52b
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, 0x1680
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x180e
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x200a
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x202f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x205f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x3000
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
jmp 0x4ce52b
mov ecx, edi
neg ecx
cmp ecx, 0x12
jne 0x4cdd1a
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x104], 0xff
mov edx, edi
dec edx
je 0x4cdb33
sub edx, 3
je 0x4cdb3c
sub edx, 0x10
je 0x4cdb45
jmp 0x4cdb4c
xor dword [ebp - 0x104], 2
jmp 0x4cdb4c
xor dword [ebp - 0x104], 1
jmp 0x4cdb4c
xor dword [ebp - 0x104], 1
mov cl, byte [ebp - 0x104]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cdb18
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4ce52b
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x167f
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x1681
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x180d
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x180f
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x1fff
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x200b
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x202e
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2030
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x205e
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2060
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2fff
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x3001
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
jmp 0x4ce52b
mov ecx, edi
neg ecx
cmp ecx, 0x15
jne 0x4cdd98
or byte [ebp - 0x1fb], 4
or byte [ebp - 0x1fb], 8
or byte [ebp - 0x1fb], 0x10
or byte [ebp - 0x1fb], 0x20
or byte [ebp - 0x1ec], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ce52b
mov dword [ebp - 0x7c], 1
mov edx, dword [ebp - 0x84]
mov eax, 0x2028
mov byte [edx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
jmp 0x4ce52b
mov ecx, edi
neg ecx
cmp ecx, 0x14
jne 0x4cde95
xor edi, edi
lea eax, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], eax
mov dword [ebp - 0x108], 0xff
mov edx, edi
dec edx
je 0x4cddc9
sub edx, 0xf
je 0x4cdde7
jmp 0x4cddee
xor dword [ebp - 0x108], 4
xor dword [ebp - 0x108], 8
xor dword [ebp - 0x108], 0x10
xor dword [ebp - 0x108], 0x20
jmp 0x4cddee
xor dword [ebp - 0x108], 0x20
mov cl, byte [ebp - 0x108]
mov eax, dword [ebp - 0x1d8]
or byte [eax], cl
inc edi
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4cddb3
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4ce52b
mov dword [ebp - 0x7c], 1
mov ecx, dword [ebp - 0x84]
mov eax, pe_nt_image_headers32
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2027
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x2029
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov eax, 0x7fffffff
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
jmp 0x4ce52b
mov ecx, edi
neg ecx
cmp ecx, 0x10
je 0x4cdeab
mov eax, edi
neg eax
cmp eax, 0xf
jne 0x4cdf3b
mov edx, dword [ebp + 0x1c]
lea ecx, [ebp - 0x110]
push edx
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x68]
call fcn.004cb2a0
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x114]
test ecx, ecx
jl 0x4d0c80
mov dword [ebp - 0x7c], 1
neg edi
cmp edi, 0x10
sete al
and eax, 1
mov edx, dword [ebp - 0x10c]
cmp eax, edx
je 0x4cdef7
mov cl, 3
jmp 0x4cdef9
mov cl, 4
mov eax, dword [ebp - 0x84]
mov byte [eax], cl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x114]
mov eax, dword [ebp - 0x84]
mov byte [eax], dl
inc dword [ebp - 0x84]
mov dl, byte [ebp - 0x110]
mov ecx, dword [ebp - 0x84]
mov byte [ecx], dl
inc dword [ebp - 0x84]
sub dword [ebp - 0xac], 2
jmp 0x4ce52b
test byte [ebp - 0x48], 0x40
je 0x4cdf4f
mov eax, dword [ebp + 0x1c]
mov dword [eax], 7
jmp 0x4d0c80
sub dword [ebp - 0xac], 2
mov edx, dword [ebp - 0x68]
movzx edi, byte [edx]
jmp 0x4cdf67
xor eax, eax
mov dword [ebp - 0x60], eax
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x5c
jne 0x4cdf7d
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x45
je 0x4cdf5e
mov ecx, dword [ebp - 0x68]
cmp edi, 0xd
mov dword [ebp - 0xdc], ecx
je 0x4cdf90
cmp edi, 0xa
jne 0x4cdf94
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x4ce414
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2d
jne 0x4ce414
add dword [ebp - 0x68], 2
jmp 0x4cdfb8
add dword [ebp - 0x68], 2
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5c
jne 0x4cdff6
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x45
je 0x4cdfb4
jmp 0x4cdff6
add dword [ebp - 0x68], 2
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x5c
jne 0x4cdfed
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x45
jne 0x4cdfed
add dword [ebp - 0x68], 2
jmp 0x4cdff6
mov dword [ebp - 0x60], 1
jmp 0x4ce00a
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x5c
jne 0x4ce00a
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x51
je 0x4cdfce
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x4ce024
mov ecx, dword [ebp - 0x60]
test ecx, ecx
jne 0x4ce032
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x5d
jne 0x4ce032
mov ecx, dword [ebp - 0xdc]
mov dword [ebp - 0x68], ecx
jmp 0x4ce414
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ce106
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0x118], ecx
mov eax, dword [ebp - 0x118]
cmp eax, 0xc0
jl 0x4ce113
mov edx, dword [ebp - 0x118]
and edx, 0x3f
xor ecx, ecx
mov cl, byte [edx + 0x5bbd74]
mov dword [ebp - 0x120], ecx
mov eax, dword [ebp - 0x120]
add eax, eax
lea eax, [eax + eax*2]
mov dword [ebp - 0x124], eax
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x120]
mov eax, dword [edx*4 + 0x5bb9b8]
mov edx, dword [ebp - 0x118]
and eax, edx
shl eax, cl
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x11c], 1
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jg 0x4ce0fb
sub dword [ebp - 0x124], 6
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x124]
movzx edx, byte [edx + eax]
and edx, 0x3f
shl edx, cl
or dword [ebp - 0x118], edx
inc dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x120]
cmp ecx, eax
jle 0x4ce0c0
mov edx, dword [ebp - 0x120]
add dword [ebp - 0x68], edx
jmp 0x4ce113
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov dword [ebp - 0x118], eax
mov edx, dword [ebp - 0x60]
test edx, edx
jne 0x4ce1b1
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x5c
jne 0x4ce1b1
mov eax, dword [ebp - 0x48]
push eax
push 1
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.004caec4
mov dword [ebp - 0x118], eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4d0c80
mov ecx, dword [ebp - 0x118]
test ecx, ecx
jge 0x4ce1b1
mov eax, dword [ebp - 0x118]
cmp eax, 0xfffffffb
jne 0x4ce175
mov dword [ebp - 0x118], 8
jmp 0x4ce1b1
mov edx, dword [ebp - 0x118]
cmp edx, 0xffffffea
jne 0x4ce18c
mov dword [ebp - 0x118], 0x58
jmp 0x4ce1b1
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xffffffef
jne 0x4ce1a3
mov dword [ebp - 0x118], 0x52
jmp 0x4ce1b1
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x68], eax
jmp 0x4ce414
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x4ce1c9
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 8
jmp 0x4d0c80
mov eax, dword [ebp - 0x118]
cmp edi, eax
je 0x4ce414
mov edx, dword [ebp - 0x118]
cmp edx, 0xd
je 0x4ce1ed
mov ecx, dword [ebp - 0x118]
cmp ecx, 0xa
jne 0x4ce1f1
or dword [ebx + 0x44], 0x20
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ce37c
mov edx, dword [ebp - 0x118]
cmp edx, 0xff
jg 0x4ce223
test byte [ebp - 0x48], 1
je 0x4ce37c
mov ecx, dword [ebp - 0x118]
cmp ecx, 0x7f
jle 0x4ce37c
mov dword [ebp - 0x7c], 1
test byte [ebp - 0x48], 1
je 0x4ce33e
mov dword [ebp - 0x130], edi
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x134], eax
jmp 0x4ce318
mov edx, dword [ebp - 0x128]
cmp edx, edi
jb 0x4ce269
mov ecx, dword [ebp - 0x12c]
mov eax, dword [ebp - 0x118]
cmp ecx, eax
jbe 0x4ce318
mov edx, dword [ebp - 0x128]
cmp edi, edx
jbe 0x4ce28b
mov ecx, edi
dec ecx
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
ja 0x4ce28b
mov edi, dword [ebp - 0x128]
jmp 0x4ce318
mov eax, dword [ebp - 0x118]
mov edx, dword [ebp - 0x12c]
cmp eax, edx
jae 0x4ce2ba
mov ecx, dword [ebp - 0x118]
inc ecx
mov eax, dword [ebp - 0x128]
cmp ecx, eax
jb 0x4ce2ba
mov edx, dword [ebp - 0x12c]
mov dword [ebp - 0x118], edx
jmp 0x4ce318
mov ecx, dword [ebp - 0x128]
mov eax, dword [ebp - 0x12c]
cmp ecx, eax
jne 0x4ce2db
mov edx, dword [ebp - 0x84]
mov byte [edx], 1
inc dword [ebp - 0x84]
jmp 0x4ce301
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 2
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x128]
call fcn.004db400
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x12c]
call fcn.004db400
add dword [ebp - 0x84], eax
lea ecx, [ebp - 0x12c]
lea eax, [ebp - 0x130]
push ecx
lea ecx, [ebp - 0x128]
mov edx, dword [ebp - 0x134]
call fcn.004cc204
test eax, eax
jne 0x4ce24b
mov eax, dword [ebp - 0x84]
mov byte [eax], 2
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x118]
call fcn.004db400
add dword [ebp - 0x84], eax
jmp 0x4ce52b
mov edx, dword [ebp - 0x118]
sub edx, edi
inc edx
add dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0x118]
mov dword [ebp - 0xb0], ecx
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4ce52b
mov edx, dword [ebp - 0x118]
cmp edi, edx
jg 0x4ce52b
mov ecx, edi
mov al, 1
and ecx, 7
mov edx, edi
shl al, cl
test edx, edx
jns 0x4ce3c2
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
test byte [ebp - 0x48], 1
je 0x4ce404
mov ecx, dword [ebx + 4]
xor eax, eax
mov dl, 1
mov al, byte [ecx + edi]
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0x138]
mov eax, dword [ebp - 0x138]
and ecx, 7
shl dl, cl
test eax, eax
jns 0x4ce3fa
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
inc edi
mov edx, dword [ebp - 0x118]
cmp edi, edx
jle 0x4ce3b0
jmp 0x4ce52b
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4ce4d7
cmp edi, 0xff
jg 0x4ce43a
test byte [ebp - 0x48], 1
je 0x4ce4d7
cmp edi, 0x7f
jle 0x4ce4d7
mov dword [ebp - 0x7c], 1
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
mov eax, edi
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
call fcn.004db400
add dword [ebp - 0x84], eax
test byte [ebp - 0x48], 1
je 0x4ce52b
mov edx, edi
test edx, edx
jns 0x4ce476
add edx, 0x7f
sar edx, 7
xor ecx, ecx
mov cl, byte [edx + 0x5c6ce0]
shl ecx, 7
mov eax, edi
and eax, 0x8000007f
jns 0x4ce492
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx edx, word [ecx*2 + 0x5bcee0]
mov ecx, dword [edx*8 + 0x5bc09c]
add ecx, edi
mov dword [ebp - 0x13c], ecx
cmp ecx, edi
je 0x4ce52b
mov eax, dword [ebp - 0x84]
mov byte [eax], 1
inc dword [ebp - 0x84]
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x13c]
call fcn.004db400
add dword [ebp - 0x84], eax
jmp 0x4ce52b
mov ecx, edi
mov dl, 1
and ecx, 7
mov eax, edi
shl dl, cl
test eax, eax
jns 0x4ce4e9
add eax, 7
sar eax, 3
or byte [ebp + eax - 0x1fc], dl
test byte [ebp - 0x48], 1
je 0x4ce51f
mov edx, dword [ebx + 4]
xor ecx, ecx
mov al, 1
mov cl, byte [edx + edi]
mov edi, ecx
mov ecx, edi
mov edx, edi
and ecx, 7
shl al, cl
test edx, edx
jns 0x4ce515
add edx, 7
sar edx, 3
or byte [ebp + edx - 0x1fc], al
inc dword [ebp - 0xac]
mov dword [ebp - 0xb0], edi
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
movzx edi, byte [eax]
test edi, edi
je 0x4ce54c
cmp edi, 0x5d
jne 0x4cd319
mov eax, dword [ebp - 0x60]
test eax, eax
jne 0x4cd319
test edi, edi
jne 0x4ce55e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 6
jmp 0x4d0c80
mov ecx, dword [ebp - 0xac]
dec ecx
jne 0x4ce618
mov eax, dword [ebp - 0x7c]
test eax, eax
jne 0x4ce618
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4ce598
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x4ce598
mov eax, dword [ebp - 0xb0]
cmp eax, 0x80
jge 0x4ce618
mov edx, dword [ebp - 0x30]
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x4ce5cf
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x4ce5b7
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov byte [esi], 0x1e
inc esi
mov cl, byte [ebp - 0xb0]
mov byte [esi], cl
inc esi
jmp 0x4d0c78
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ce5fd
mov edx, dword [ebp - 0xb0]
cmp edx, 0x7f
jle 0x4ce5fd
lea edx, [ebp - 0xd8]
mov eax, dword [ebp - 0xb0]
call fcn.004db400
mov dword [ebp - 0xd0], eax
jmp 0x4d0b93
mov cl, byte [ebp - 0xb0]
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x4d0b93
mov eax, dword [ebp - 0x2c]
cmp eax, 0xfffffffe
jne 0x4ce627
mov dword [ebp - 0x2c], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x4ce6df
mov edx, dword [ebp - 0x98]
test edx, edx
jne 0x4ce6df
mov ecx, dword [ebp - 0x84]
mov byte [ecx], 0
inc dword [ebp - 0x84]
mov byte [esi], 0x50
inc esi
add esi, 2
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x4ce670
mov dl, 1
jmp 0x4ce672
xor edx, edx
mov byte [esi], dl
mov eax, dword [ebp - 0xac]
test eax, eax
jle 0x4ce6b5
or byte [esi], 2
inc esi
mov ecx, dword [ebp - 0x84]
sub ecx, esi
lea eax, [esi + 0x20]
push ecx
push esi
push eax
call fcn.004cad9c
add esp, 0xc
lea edx, [ebp - 0x1fc]
push 0x20
push edx
push esi
call fcn.004cad94
add esp, 0xc
mov esi, dword [ebp - 0x84]
add esi, 0x20
jmp 0x4ce6bb
mov esi, dword [ebp - 0x84]
mov edx, dword [ebp - 0x70]
mov eax, esi
sub eax, edx
mov ecx, dword [ebp - 0x70]
sar eax, 8
mov byte [ecx + 1], al
mov eax, esi
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x70]
sub eax, edx
and al, 0xff
mov byte [ecx + 2], al
jmp 0x4d0c78
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
cmp eax, edx
jne 0x4ce6f3
mov cl, 0x4e
jmp 0x4ce6f5
mov cl, 0x4f
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x94]
test eax, eax
je 0x4ce745
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4ce757
xor edi, edi
mov eax, esi
mov dword [ebp - 0x1dc], eax
lea edx, [ebp - 0x1fc]
mov dword [ebp - 0x1d8], edx
mov ecx, dword [ebp - 0x1d8]
mov edx, dword [ebp - 0x1dc]
inc edi
mov al, byte [ecx]
not al
mov byte [edx], al
inc dword [ebp - 0x1dc]
inc dword [ebp - 0x1d8]
cmp edi, 0x20
jl 0x4ce71f
jmp 0x4ce757
push 0x20
lea ecx, [ebp - 0x1fc]
push ecx
push esi
call fcn.004cad94
add esp, 0xc
add esi, 0x20
jmp 0x4d0c78
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x4d0b41
mov edx, dword [ebp + 0x1c]
push edx
lea ecx, [ebp - 0x1c]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 0x68]
inc eax
call fcn.004cb43c
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ecx]
test eax, eax
jne 0x4d0c80
jmp 0x4ce7bc
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x4ce7bc
mov dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], 0xffffffff
jmp 0x4ce7bc
xor ecx, ecx
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x70]
test eax, eax
jne 0x4ce7d1
mov edx, dword [ebp + 0x1c]
mov dword [edx], 9
jmp 0x4d0c80
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4ce7e4
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x2c], eax
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
cmp ecx, eax
jne 0x4ce7f2
xor edx, edx
jmp 0x4ce7f7
mov edx, 0x200
mov dword [ebp - 0x40], edx
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0x9c], ecx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x2b
jne 0x4ce82c
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
inc dword [ebp - 0x68]
jmp 0x4ce848
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3f
jne 0x4ce842
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
inc dword [ebp - 0x68]
jmp 0x4ce848
mov edx, dword [ebp - 0x24]
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x1c
je 0x4ce85f
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1d
jne 0x4ce92a
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4ce8bc
test byte [esi - 1], 0x80
je 0x4ce8bc
lea edx, [esi - 1]
mov dword [ebp - 0x140], edx
jmp 0x4ce87d
dec dword [ebp - 0x140]
mov ecx, dword [ebp - 0x140]
xor eax, eax
mov al, byte [ecx]
and eax, 0xc0
cmp eax, 0x80
je 0x4ce877
mov edi, esi
mov eax, dword [ebp - 0x140]
sub edi, eax
push edi
mov edx, dword [ebp - 0x140]
push edx
lea ecx, [ebp - 0x90]
push ecx
call fcn.004cad94
add esp, 0xc
or edi, 0x80
jmp 0x4ce8d3
movzx edi, byte [esi - 1]
mov eax, dword [ebp - 0x18]
dec eax
jle 0x4ce8d3
mov edx, dword [ebp - 0x3c]
or edx, edi
mov ecx, dword [ebx + 0x48]
or edx, ecx
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x4ce9e1
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x4ce9e1
lea ecx, [ebp - 0x90]
push ecx
mov eax, dword [ebp - 0x68]
inc eax
push eax
mov edx, dword [ebp - 0x48]
push edx
push ebx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx]
mov ecx, dword [ebp - 0x80]
mov edx, edi
call fcn.004cc2a0
test eax, eax
je 0x4ce9e1
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x9c], 1
jmp 0x4ce9e1
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x1e
jne 0x4ce98b
mov dword [ebp - 0x14], 0xd
mov eax, dword [ebp - 0x70]
movzx edi, byte [eax + 1]
mov eax, dword [ebp - 0x9c]
test eax, eax
jne 0x4ce9e1
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x4ce9e1
push 0
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov ecx, dword [ebp - 0x80]
mov edx, edi
mov eax, 0x1e
call fcn.004cc2a0
test eax, eax
je 0x4ce9e1
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
jmp 0x4ce9e1
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x17
jae 0x4cec4a
mov dword [ebp - 0x14], 0x1a
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x9c]
test eax, eax
movzx edi, byte [edx]
jne 0x4ce9e1
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x4ce9e1
push 0
mov ecx, dword [ebp - 0x68]
inc ecx
push ecx
mov eax, dword [ebp - 0x48]
push eax
push ebx
mov ecx, dword [ebp - 0x80]
xor edx, edx
mov eax, edi
call fcn.004cc2a0
test eax, eax
je 0x4ce9e1
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x9c], 1
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x10
je 0x4ce9f4
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0xf
jne 0x4cea12
mov eax, dword [ebp - 0x70]
xor edx, edx
mov dl, byte [eax + 1]
mov dword [ebp - 0x148], edx
mov ecx, dword [ebp - 0x70]
xor eax, eax
mov al, byte [ecx + 2]
mov dword [ebp - 0x14c], eax
jmp 0x4cea21
or edx, 0xffffffff
mov dword [ebp - 0x14c], edx
mov dword [ebp - 0x148], edx
mov dword [ebp - 0x144], esi
mov esi, dword [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4cf4c4
mov edx, dword [ebp - 0x1c]
dec edx
je 0x4cea3f
or dword [ebx + 0x44], 1
mov ecx, dword [ebp - 0x14]
add dword [ebp - 0x10], ecx
mov eax, dword [ebp - 0x18]
test eax, eax
jne 0x4cea96
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x4cea60
mov cl, byte [ebp - 0x10]
add cl, 0x1f
mov byte [esi], cl
inc esi
jmp 0x4cebf4
mov eax, dword [ebp - 0x1c]
dec eax
jne 0x4cea74
mov dl, byte [ebp - 0x10]
add dl, 0x23
mov byte [esi], dl
inc esi
jmp 0x4cebf4
mov cl, byte [ebp - 0x10]
add cl, 0x25
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x4cebf4
mov ecx, dword [ebp - 0x18]
dec ecx
jne 0x4ceae4
mov eax, dword [ebp - 0x1c]
inc eax
jne 0x4ceab0
mov dl, byte [ebp - 0x10]
add dl, 0x21
mov byte [esi], dl
inc esi
jmp 0x4cebf4
mov esi, dword [ebp - 0x144]
mov eax, dword [ebp - 0x1c]
dec eax
je 0x4cf4c4
mov dl, byte [ebp - 0x10]
add dl, 0x25
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x1c]
dec ecx
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x1c]
add al, 0xff
and al, 0xff
mov byte [esi + 1], al
add esi, 2
jmp 0x4cebf4
mov dl, byte [ebp - 0x14]
add dl, 0x27
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x18]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0x1c]
test edx, edx
jge 0x4ceb64
mov ecx, dword [ebp - 0x80]
test ecx, ecx
je 0x4ceb35
cmp edi, 0x80
jl 0x4ceb35
mov eax, edi
lea edx, [ebp - 0x90]
and eax, 7
push eax
push edx
push esi
call fcn.004cad94
add esp, 0xc
mov ecx, edi
and ecx, 7
add esi, ecx
jmp 0x4ceb56
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x4ceb56
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
mov dl, byte [ebp - 0x10]
add dl, 0x1f
mov byte [esi], dl
inc esi
jmp 0x4cebf4
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
je 0x4cebf4
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4ceba0
cmp edi, 0x80
jl 0x4ceba0
mov ecx, edi
lea eax, [ebp - 0x90]
and ecx, 7
push ecx
push eax
push esi
call fcn.004cad94
add esp, 0xc
mov edx, edi
and edx, 7
add esi, edx
jmp 0x4ceba5
mov ecx, edi
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x148]
test eax, eax
jl 0x4cebc1
mov dl, byte [ebp - 0x148]
mov byte [esi], dl
inc esi
mov cl, byte [ebp - 0x14c]
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
dec edx
jne 0x4cebd8
mov cl, byte [ebp - 0x10]
add cl, 0x23
mov byte [esi], cl
inc esi
jmp 0x4cebf4
mov al, byte [ebp - 0x10]
add al, 0x25
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x1c]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x1c]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x4cec20
cmp edi, 0x80
jl 0x4cec20
mov edx, edi
lea ecx, [ebp - 0x90]
and edx, 7
push edx
push ecx
push esi
call fcn.004cad94
add esp, 0xc
and edi, 7
add esi, edi
jmp 0x4cec25
mov eax, edi
mov byte [esi], al
inc esi
mov edx, dword [ebp - 0x148]
test edx, edx
jl 0x4cf2ef
mov cl, byte [ebp - 0x148]
mov byte [esi], cl
inc esi
mov al, byte [ebp - 0x14c]
mov byte [esi], al
inc esi
jmp 0x4cf2ef
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x4e
je 0x4cec75
mov eax, dword [ebp - 0x70]
mov dl, byte [eax]
cmp dl, 0x4f
je 0x4cec75
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x50
je 0x4cec75
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x51
jne 0x4ced1b
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x4cec84
mov esi, dword [ebp - 0x70]
jmp 0x4cf4c4
mov eax, dword [ebp - 0x1c]
dec eax
je 0x4cec8e
or dword [ebx + 0x44], 1
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x4ceca8
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x4ceca8
mov al, byte [ebp - 0x10]
add al, 0x46
mov byte [esi], al
inc esi
jmp 0x4cf2ef
mov edx, dword [ebp - 0x18]
dec edx
jne 0x4cecc1
mov ecx, dword [ebp - 0x1c]
inc ecx
jne 0x4cecc1
mov al, byte [ebp - 0x10]
add al, 0x48
mov byte [esi], al
inc esi
jmp 0x4cf2ef
mov edx, dword [ebp - 0x18]
test edx, edx
jne 0x4cecdb
mov ecx, dword [ebp - 0x1c]
dec ecx
jne 0x4cecdb
mov al, byte [ebp - 0x10]
add al, 0x4a
mov byte [esi], al
inc esi
jmp 0x4cf2ef
mov dl, byte [ebp - 0x10]
add dl, 0x4c
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x18]
sar ecx, 8
mov byte [esi], cl
mov al, byte [ebp - 0x18]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x4ced02
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0x1c]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
jmp 0x4cf2ef
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x5e
je 0x4ced45
mov edx, dword [ebp - 0x70]
mov cl, byte [edx]
cmp cl, 0x5f
je 0x4ced45
mov eax, dword [ebp - 0x70]
mov dl, byte [eax]
cmp dl, 0x5d
je 0x4ced45
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x60
jne 0x4cf2d4
xor edx, edx
mov edi, esi
mov dword [ebp - 0x154], edx
xor edx, edx
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x158], edx
mov ecx, dword [ebp - 0x70]
sub edi, eax
mov al, byte [ecx]
cmp al, 0x60
jne 0x4ced7e
mov edx, dword [ebp - 0x70]
mov cl, byte [edx + 3]
cmp cl, 0x66
jne 0x4ced7e
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x37
jmp 0x4d0c80
mov edx, dword [ebp - 0x1c]
inc edx
jne 0x4cedcb
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x15c], ecx
mov eax, dword [ebp - 0x15c]
mov ecx, dword [ebp - 0x15c]
xor edx, edx
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
add dword [ebp - 0x15c], edx
mov edx, dword [ebp - 0x15c]
mov cl, byte [edx]
cmp cl, 0x55
jne 0x4ced8d
mov eax, esi
mov edx, dword [ebp - 0x15c]
sub eax, edx
mov dword [ebp - 0x154], eax
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jne 0x4ceec2
mov eax, dword [ebp - 0x1c]
dec eax
jg 0x4cee2b
mov byte [esi], 0
push ebx
mov edx, dword [ebp - 0x78]
push edx
mov ecx, dword [ebp - 0x80]
mov edx, 1
mov eax, dword [ebp - 0x70]
call fcn.004cc0fc
push edi
mov ecx, dword [ebp - 0x70]
push ecx
mov eax, dword [ebp - 0x70]
inc eax
push eax
call fcn.004cad9c
add esp, 0xc
inc esi
mov edx, dword [ebp - 0x1c]
test edx, edx
jne 0x4cee19
mov ecx, dword [ebp - 0x70]
mov byte [ecx], 0x6f
jmp 0x4cf4c4
mov edx, dword [ebp - 0x70]
mov al, byte [ebp - 0x10]
add al, 0x67
mov byte [edx], al
inc dword [ebp - 0x70]
jmp 0x4ceeba
mov byte [esi], 0
push ebx
mov ecx, dword [ebp - 0x78]
push ecx
mov ecx, dword [ebp - 0x80]
mov edx, 4
mov eax, dword [ebp - 0x70]
call fcn.004cc0fc
push edi
mov eax, dword [ebp - 0x70]
push eax
mov edx, dword [ebp - 0x70]
add edx, 4
push edx
call fcn.004cad9c
mov eax, dword [ebp - 0x70]
mov cl, byte [ebp - 0x10]
add cl, 0x67
add esp, 0xc
mov byte [eax], cl
add esi, 4
inc dword [ebp - 0x70]
mov edx, dword [ebp - 0x70]
mov byte [edx], 0x5e
inc dword [ebp - 0x70]
mov ecx, dword [ebp - 0x158]
test ecx, ecx
jne 0x4cee7f
xor eax, eax
jmp 0x4cee8a
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x158]
sub eax, edx
mov dword [ebp - 0x160], eax
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x158], ecx
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp - 0x70]
sar eax, 8
mov byte [edx], al
mov eax, dword [ebp - 0x70]
mov cl, byte [ebp - 0x160]
and cl, 0xff
mov byte [eax + 1], cl
add dword [ebp - 0x70], 2
dec dword [ebp - 0x1c]
jmp 0x4ceff6
mov edx, dword [ebp - 0x18]
dec edx
jle 0x4cefe9
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4cef34
mov eax, dword [ebp - 0x18]
dec eax
imul dword [ebp - 0x50]
mov dword [ebp - 0x164], eax
mov edx, dword [ebp - 0x18]
dec edx
mov dword [ebp - 0x220], edx
fild dword [ebp - 0x220]
fild dword [ebp - 0x50]
fmulp st(1)
fcomp qword [0x4d0c94]
fnstsw ax
sahf
ja 0x4cef16
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x164]
cmp ecx, edx
jge 0x4cef24
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x4d0c80
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x164]
add dword [eax], edx
jmp 0x4cefe9
mov ecx, dword [ebp - 0x64]
test ecx, ecx
je 0x4cef48
mov eax, dword [ebp - 0x30]
test eax, eax
jge 0x4cef48
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x150], 1
mov ecx, dword [ebp - 0x150]
mov eax, dword [ebp - 0x18]
cmp ecx, eax
jge 0x4cefe9
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x168], edx
push edi
mov ecx, dword [ebp - 0x70]
push ecx
push esi
call fcn.004cad94
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x168]
cmp eax, edx
jae 0x4cefc7
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebx + 0x20]
add ecx, edi
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
add eax, 2
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
mov ecx, dword [ebp - 0x168]
cmp eax, ecx
jb 0x4cef87
mov eax, dword [ebp - 0x168]
add esi, edi
mov dword [ebp - 0x78], eax
inc dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
mov edx, dword [ebp - 0x18]
cmp eax, edx
jl 0x4cef63
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
jle 0x4ceff6
mov eax, dword [ebp - 0x18]
sub dword [ebp - 0x1c], eax
mov edx, dword [ebp - 0x1c]
test edx, edx
jl 0x4cf216
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4cf078
mov eax, dword [ebp - 0x1c]
test eax, eax
jle 0x4cf078
mov edx, dword [ebp - 0x50]
add edx, 7
imul edx, dword [ebp - 0x1c]
add edx, 0xfffffffa
mov dword [ebp - 0x16c], edx
fild dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
add ecx, 7
mov dword [ebp - 0x220], ecx
fild dword [ebp - 0x220]
fmulp st(1)
fcomp qword [0x4d0c94]
fnstsw ax
sahf
ja 0x4cf05a
mov edx, dword [ebp + 8]
mov ecx, 0x7fffffeb
mov eax, dword [edx]
sub ecx, eax
mov edx, dword [ebp - 0x16c]
cmp ecx, edx
jge 0x4cf068
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x14
jmp 0x4d0c80
mov eax, dword [ebp + 8]
mov edx, dword [ebp - 0x16c]
add dword [eax], edx
jmp 0x4cf191
mov ecx, dword [ebp - 0x1c]
dec ecx
mov dword [ebp - 0x150], ecx
mov eax, dword [ebp - 0x150]
test eax, eax
jl 0x4cf191
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x170], edx
mov cl, byte [ebp - 0x10]
add cl, 0x67
mov byte [esi], cl
inc esi
mov eax, dword [ebp - 0x150]
test eax, eax
je 0x4cf0ed
mov byte [esi], 0x5e
inc esi
mov edx, dword [ebp - 0x158]
test edx, edx
jne 0x4cf0be
xor ecx, ecx
jmp 0x4cf0c8
mov ecx, esi
mov eax, dword [ebp - 0x158]
sub ecx, eax
mov dword [ebp - 0x174], ecx
mov dword [ebp - 0x158], esi
mov edx, dword [ebp - 0x174]
sar edx, 8
mov byte [esi], dl
mov al, byte [ebp - 0x174]
and al, 0xff
mov byte [esi + 1], al
add esi, 2
push edi
mov edx, dword [ebp - 0x70]
push edx
push esi
call fcn.004cad94
add esp, 0xc
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x170]
cmp eax, edx
jae 0x4cf172
xor ecx, ecx
xor edx, edx
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or ecx, edx
mov edx, dword [ebp - 0x150]
add ecx, edi
test edx, edx
je 0x4cf129
mov edx, 4
jmp 0x4cf12e
mov edx, 1
add ecx, edx
mov edx, dword [ebx + 0x20]
sar ecx, 8
mov byte [edx], cl
mov cl, byte [eax]
mov dl, byte [eax + 1]
shl ecx, 8
or cl, dl
mov edx, edi
add cl, dl
mov edx, dword [ebp - 0x150]
test edx, edx
je 0x4cf154
mov dl, 4
jmp 0x4cf156
mov dl, 1
add cl, dl
mov edx, dword [ebx + 0x20]
and cl, 0xff
add eax, 2
mov byte [edx + 1], cl
add dword [ebx + 0x20], 2
mov ecx, dword [ebp - 0x170]
cmp eax, ecx
jb 0x4cf108
mov eax, dword [ebp - 0x170]
add esi, edi
mov dword [ebp - 0x78], eax
dec dword [ebp - 0x150]
mov eax, dword [ebp - 0x150]
test eax, eax
jge 0x4cf090
mov edx, dword [ebp - 0x158]
test edx, edx
je 0x4cf2ef
mov eax, esi
mov edx, dword [ebp - 0x158]
sub eax, edx
inc eax
mov edx, esi
sub edx, eax
xor ecx, ecx
mov cl, byte [edx + 1]
shl ecx, 8
movzx edi, byte [edx + 2]
or ecx, edi
mov dword [ebp - 0x178], ecx
mov ecx, dword [ebp - 0x178]
test ecx, ecx
jne 0x4cf1d0
xor ecx, ecx
jmp 0x4cf1de
mov ecx, dword [ebp - 0x158]
mov edi, dword [ebp - 0x178]
sub ecx, edi
mov dword [ebp - 0x158], ecx
mov byte [esi], 0x55
inc esi
mov ecx, eax
sar ecx, 8
mov byte [esi], cl
mov ecx, eax
and cl, 0xff
mov byte [esi + 1], cl
mov ecx, eax
sar ecx, 8
add esi, 2
and al, 0xff
mov byte [edx + 1], cl
mov byte [edx + 2], al
mov eax, dword [ebp - 0x158]
test eax, eax
jne 0x4cf19f
jmp 0x4cf2ef
mov eax, dword [ebp - 0x154]
mov edx, esi
sub edx, eax
xor ecx, ecx
mov dword [ebp - 0x17c], edx
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x17c]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
mov eax, dword [ebp - 0x17c]
or ecx, edx
sub eax, ecx
mov dword [ebp - 0x180], eax
mov ecx, dword [ebp - 0x17c]
mov dl, byte [ebp - 0x10]
add dl, 0x56
mov byte [ecx], dl
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4cf2ef
mov edx, dword [ebp - 0x180]
mov cl, byte [edx]
cmp cl, 0x5d
je 0x4cf2ef
mov eax, dword [ebp - 0x180]
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x17c]
mov eax, dword [ebp - 0x184]
call fcn.004cbda0
test eax, eax
je 0x4cf2a4
mov edx, dword [ebp - 0x180]
add byte [edx], 3
jmp 0x4cf2ef
mov ecx, dword [ebp - 0x184]
mov edx, dword [ebp - 0x184]
xor eax, eax
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x184], eax
mov eax, dword [ebp - 0x184]
mov dl, byte [eax]
cmp dl, 0x54
je 0x4cf281
jmp 0x4cf2ef
mov ecx, dword [ebp - 0x70]
mov al, byte [ecx]
cmp al, 0x6d
je 0x4cf4c4
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xb
jmp 0x4d0c80
mov ecx, dword [ebp - 0x9c]
test ecx, ecx
je 0x4cf4c4
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp dl, 0x27
je 0x4cf31a
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx]
cmp al, 0x41
je 0x4cf31a
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx]
cmp cl, 0x34
jne 0x4cf356
mov eax, dword [ebp - 0x5c]
mov dl, byte [eax]
cmp dl, 0x41
jne 0x4cf340
mov ecx, dword [ebp - 0x5c]
mov al, byte [ecx + 3]
cmp al, 0x10
je 0x4cf339
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx + 3]
cmp cl, 0xf
jne 0x4cf340
mov eax, 2
jmp 0x4cf342
xor eax, eax
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
mov dl, byte [ecx + 0x5bbd04]
add eax, edx
add dword [ebp - 0x5c], eax
mov eax, esi
mov ecx, dword [ebp - 0x5c]
sub eax, ecx
mov dword [ebp - 0x188], eax
mov eax, dword [ebp - 0x188]
test eax, eax
jle 0x4cf4c4
mov edx, dword [ebp - 0x5c]
xor ecx, ecx
mov cl, byte [edx]
add ecx, 0xffffffe1
cmp ecx, 0x20
ja case.0x4cf38a.31
mov cl, byte [ecx + 0x4cf391]
jmp dword [ecx*4 + 0x4cf3b2]
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x28
jmp 0x4cf4c4
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x29
jmp 0x4cf4c4
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x2a
jmp 0x4cf4c4
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x2b
jmp 0x4cf4c4
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x42
jmp 0x4cf4c4
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x43
jmp 0x4cf4c4
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x44
jmp 0x4cf4c4
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x45
jmp 0x4cf4c4
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x35
jmp 0x4cf4c4
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0x36
jmp 0x4cf4c4
mov edx, dword [ebp - 0x5c]
mov byte [edx], 0x37
jmp 0x4cf4c4
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0x38
jmp 0x4cf4c4
mov eax, dword [ebp - 0x188]
push eax
mov edx, dword [ebp - 0x5c]
push edx
mov ecx, dword [ebp - 0x5c]
add ecx, 3
push ecx
call fcn.004cad9c
add dword [ebp - 0x188], 3
mov eax, dword [ebp - 0x5c]
add esi, 3
add esp, 0xc
mov byte [eax], 0x5d
mov byte [esi], 0x55
inc esi
mov edx, dword [ebp - 0x188]
sar edx, 8
mov byte [esi], dl
mov cl, byte [ebp - 0x188]
and cl, 0xff
mov byte [esi + 1], cl
add esi, 2
mov eax, dword [ebp - 0x188]
mov edx, dword [ebp - 0x5c]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [ebp - 0x5c]
mov cl, byte [ebp - 0x188]
and cl, 0xff
mov byte [eax + 2], cl
xor edx, edx
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x40]
or dword [ebx + 0x48], ecx
jmp 0x4d0c78
mov eax, dword [ebp - 0x48]
xor edx, edx
mov dword [ebp - 0xb4], eax
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0x20], 0x5f
mov ecx, dword [ebx + 0x20]
xor eax, eax
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0xa8], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x2a
jne 0x4cf615
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 2
je 0x4cf615
mov dword [ebp - 0x190], 0x5bae58
inc dword [ebp - 0x68]
xor edx, edx
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x194], eax
mov dword [ebp - 0x70], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 2
jne 0x4cf53b
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3a
jne 0x4cf565
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3b
jmp 0x4d0c80
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
je 0x4cf57c
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x4d0c80
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x194]
sub ecx, eax
xor edi, edi
mov dword [ebp - 0x18c], ecx
jmp 0x4cf5eb
mov eax, dword [edi*8 + 0x5bad74]
mov edx, dword [ebp - 0x18c]
cmp eax, edx
jne 0x4cf5dc
mov ecx, dword [ebp - 0x18c]
push ecx
mov eax, dword [ebp - 0x190]
push eax
mov edx, dword [ebp - 0x194]
push edx
call fcn.004cadac
add esp, 0xc
test eax, eax
jne 0x4cf5dc
mov cl, byte [edi*8 + 0x5bad78]
mov byte [esi], cl
mov al, byte [esi]
inc esi
cmp al, 0x6e
jne 0x4cf5f5
mov dword [ebx + 0x4c], 1
jmp 0x4cf5f5
mov edx, dword [edi*8 + 0x5bad74]
inc edx
add dword [ebp - 0x190], edx
inc edi
mov ecx, dword [0x5badac]
cmp edi, ecx
jl 0x4cf591
mov eax, dword [0x5badac]
cmp edi, eax
jl 0x4d0c78
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3c
jmp 0x4d0c80
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3f
jne 0x4d0525
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
cmp ecx, 0x3a
jg 0x4cf6ae
je 0x4cf730
add ecx, 0xffffffdf
cmp ecx, 0x18
ja case.0x4cf643.34
jmp dword [ecx*4 + 0x4cf64a]
cmp ecx, 0x43
jg 0x4cf6d5
je 0x4cfc7a
sub ecx, 0x3c
je 0x4cfc17
dec ecx
je 0x4cfbe2
dec ecx
je 0x4cfc6b
jmp case.0x4cf643.34
sub ecx, 0x50
je 0x4cfd30
sub ecx, 2
je 0x4d00fa
sub ecx, 0x2a
je 0x4cf726
jmp case.0x4cf643.34
inc dword [ebp - 0x68]
jmp 0x4cf6f9
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
test dl, dl
je 0x4cf70b
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x4cf6f6
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
test cl, cl
jne 0x4d0c78
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x12
jmp 0x4d0c80
mov dword [ebp - 0xa8], 1
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x4d0553
mov dword [ebp - 0x20], 0x60
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3f
jne 0x4cf77d
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 2]
cmp dl, 0x3d
je 0x4d0553
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x21
je 0x4d0553
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 2]
cmp cl, 0x3c
je 0x4d0553
mov byte [esi + 3], 0x64
mov dword [ebp - 0xc0], 3
mov dword [ebp - 0xbc], 0xffffffff
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x52
jne 0x4cf7be
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x26
jne 0x4cf7be
mov dword [ebp - 0xcc], 0xffffffff
add dword [ebp - 0x68], 2
mov byte [esi + 3], 0x65
jmp 0x4cf81f
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x3c
jne 0x4cf7d8
mov dword [ebp - 0xcc], 0x3e
inc dword [ebp - 0x68]
jmp 0x4cf81f
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x27
jne 0x4cf7f2
mov dword [ebp - 0xcc], 0x27
inc dword [ebp - 0x68]
jmp 0x4cf81f
xor ecx, ecx
mov dword [ebp - 0xcc], ecx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2d
je 0x4cf80f
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2b
jne 0x4cf81f
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov dword [ebp - 0xbc], ecx
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax + 1]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
jne 0x4cf841
inc dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1c
jmp 0x4d0c80
xor edx, edx
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x4cf896
mov eax, dword [ebp - 0xb8]
test eax, eax
jl 0x4cf893
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
test byte [ecx + 0x5bb809], 4
je 0x4cf88a
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x68]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
add eax, 0xffffffd0
jmp 0x4cf88d
or eax, 0xffffffff
mov dword [ebp - 0xb8], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne 0x4cf857
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x1ac]
sub edx, ecx
mov dword [ebp - 0x1a4], edx
mov eax, dword [ebp - 0xcc]
test eax, eax
jle 0x4cf8d5
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
jne 0x4cf8e2
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x29
je 0x4cf8f3
dec dword [ebp - 0x68]
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x1a
jmp 0x4d0c80
mov edx, dword [ebp + 8]
test edx, edx
jne 0x4d0553
mov ecx, dword [ebp - 0xbc]
test ecx, ecx
jle 0x4cf990
mov eax, dword [ebp - 0xb8]
test eax, eax
jg 0x4cf924
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x4d0c80
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x4cf93d
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 0xb8]
sub eax, edx
inc eax
jmp 0x4cf948
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x30]
add eax, edx
mov dword [ebp - 0xb8], eax
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jle 0x4cf965
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebx + 0x34]
cmp eax, edx
jle 0x4cf973
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x4d0c80
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x4d0553
mov ecx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], ecx
xor eax, eax
mov dword [ebp - 0x198], eax
jmp 0x4cf9d6
mov edx, dword [ebp - 0x1a4]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
mov eax, dword [ebp - 0x1ac]
push eax
call fcn.004cadac
add esp, 0xc
test eax, eax
je 0x4cf9e3
mov edx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], edx
inc dword [ebp - 0x198]
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jl 0x4cf9a3
mov edx, dword [ebp - 0x198]
mov ecx, dword [ebx + 0x28]
cmp edx, ecx
jge 0x4cfa2d
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1b0]
xor edx, edx
mov dl, byte [eax]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 1]
or edx, eax
mov dword [ebp - 0xb8], edx
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x4d0553
test byte [ebp - 0x48], 8
setne al
and eax, 1
push eax
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.004cb880
mov dword [ebp - 0x198], eax
test eax, eax
jle 0x4cfa72
mov edx, dword [ebp - 0x198]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0x198]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x4d0553
mov eax, dword [ebp - 0xcc]
test eax, eax
je 0x4cfa8a
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4d0c80
mov ecx, dword [ebp - 0x1ac]
mov al, byte [ecx]
cmp al, 0x52
jne 0x4cfb56
xor edx, edx
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0x198], 1
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x1a4]
cmp ecx, eax
jge 0x4cfb21
mov edx, dword [ebp - 0x1ac]
mov ecx, dword [ebp - 0x198]
xor eax, eax
mov al, byte [edx + ecx]
test byte [eax + 0x5bb809], 4
jne 0x4cfae4
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4d0c80
mov ecx, dword [ebp - 0x1ac]
mov eax, dword [ebp - 0x198]
xor edx, edx
mov dl, byte [ecx + eax]
mov ecx, dword [ebp - 0xb8]
add ecx, ecx
lea ecx, [ecx + ecx*4]
add edx, ecx
add edx, 0xffffffd0
mov dword [ebp - 0xb8], edx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebp - 0x1a4]
cmp eax, edx
jl 0x4cfabc
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
jne 0x4cfb35
mov dword [ebp - 0xb8], 0xffff
mov byte [esi + 3], 0x65
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi + 4], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 5], dl
jmp 0x4d0553
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 6
jne 0x4cfb8e
push 6
push 0x5bb911
mov eax, dword [ebp - 0x1ac]
push eax
call fcn.004cadac
add esp, 0xc
test eax, eax
jne 0x4cfb8e
mov byte [esi + 3], 0x66
mov dword [ebp - 0xc0], 1
jmp 0x4d0553
mov edx, dword [ebp - 0xb8]
test edx, edx
jle 0x4cfbc2
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebx + 0x34]
cmp ecx, eax
jg 0x4cfbc2
mov edx, dword [ebp - 0xb8]
sar edx, 8
mov byte [esi + 4], dl
mov cl, byte [ebp - 0xb8]
and cl, 0xff
mov byte [esi + 5], cl
jmp 0x4d0553
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x4cfbd3
mov edx, 0x23
jmp 0x4cfbd8
mov edx, 0xf
mov eax, dword [ebp + 0x1c]
mov dword [eax], edx
jmp 0x4d0c80
mov dword [ebp - 0x20], 0x58
inc dword [ebp - 0x68]
jmp 0x4d0553
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x4cfc0b
mov byte [esi], 0x6d
inc esi
xor edx, edx
mov dword [ebp - 0x70], edx
jmp 0x4d0c78
mov dword [ebp - 0x20], 0x59
jmp 0x4d0553
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
sub al, 0x21
je 0x4cfc35
sub al, 0x1c
jne 0x4cfc45
mov dword [ebp - 0x20], 0x5a
add dword [ebp - 0x68], 2
jmp 0x4d0553
mov dword [ebp - 0x20], 0x5b
add dword [ebp - 0x68], 2
jmp 0x4d0553
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx + 1]
mov eax, dword [ebx + 0xc]
test byte [eax + ecx], 0x10
jne case.0x4cf643.39
inc dword [ebp - 0x68]
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x18
jmp 0x4d0c80
mov dword [ebp - 0x20], 0x5d
inc dword [ebp - 0x68]
jmp 0x4d0553
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x4c], 1
mov byte [esi], 0x53
inc esi
xor ecx, ecx
mov dword [ebp - 0x1b4], ecx
jmp 0x4cfcaf
mov eax, dword [ebp - 0x1b4]
mov edx, dword [ebp - 0x68]
add eax, eax
xor ecx, ecx
mov cl, byte [edx]
lea eax, [eax + eax*4]
add eax, ecx
add eax, 0xffffffd0
mov dword [ebp - 0x1b4], eax
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x5bb809], 4
jne 0x4cfc92
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
je 0x4cfcd9
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x27
jmp 0x4d0c80
mov ecx, dword [ebp - 0x1b4]
cmp ecx, 0xff
jle 0x4cfcf5
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x26
jmp 0x4d0c80
mov dl, byte [ebp - 0x1b4]
mov byte [esi], dl
inc esi
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebx + 0x18]
sub ecx, eax
inc ecx
sar ecx, 8
mov byte [esi], cl
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebx + 0x18]
sub edx, ecx
inc edx
and dl, 0xff
mov byte [esi + 1], dl
mov byte [esi + 2], 0
mov byte [esi + 3], 0
add esi, 4
xor eax, eax
mov dword [ebp - 0x70], eax
jmp 0x4d0c78
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x3d
je 0x4cfd47
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3e
jne 0x4cfd69
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3e
sete dl
and edx, 1
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0xcc], 0x29
jmp 0x4cff85
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3c
je case.0x4cf643.39
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x29
jmp 0x4d0c80
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x3c
jne 0x4cfd90
mov edx, 0x3e
jmp 0x4cfd95
mov edx, 0x27
mov dword [ebp - 0xcc], edx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], eax
jmp 0x4cfdac
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebx + 0xc]
test byte [edx + eax], 0x10
jne 0x4cfda9
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x1ac]
sub ecx, eax
mov dword [ebp - 0x1a4], ecx
mov edx, dword [ebp + 8]
test edx, edx
je 0x4cfe48
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x4cfdf3
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x4d0c80
mov eax, dword [ebx + 0x28]
cmp eax, 0x2710
jl 0x4cfe0b
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x31
jmp 0x4d0c80
mov ecx, dword [ebp - 0x1a4]
add ecx, 3
mov eax, dword [ebx + 0x2c]
cmp ecx, eax
jle 0x4cff66
mov edx, dword [ebp - 0x1a4]
add edx, 3
mov dword [ebx + 0x2c], edx
mov ecx, dword [ebp - 0x1a4]
cmp ecx, 0x20
jle 0x4cff66
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x30
jmp 0x4d0c80
mov edx, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], edx
xor ecx, ecx
mov dword [ebp - 0x198], ecx
jmp 0x4cff05
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1b0]
add edx, 2
push edx
mov ecx, dword [ebp - 0x1ac]
push ecx
call fcn.004cadb4
add esp, 0xc
mov dword [ebp - 0x1b8], eax
mov eax, dword [ebp - 0x1b8]
test eax, eax
jne 0x4cfec0
mov edx, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1a4]
mov al, byte [edx + ecx + 2]
test al, al
jne 0x4cfeb6
test byte [ebp - 0x46], 8
jne 0x4cfec0
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x2b
jmp 0x4d0c80
mov dword [ebp - 0x1b8], 0xffffffff
mov ecx, dword [ebp - 0x1b8]
test ecx, ecx
jge 0x4cfef6
mov eax, dword [ebx + 0x28]
mov edx, dword [ebp - 0x198]
sub eax, edx
imul dword [ebx + 0x2c]
push eax
mov ecx, dword [ebp - 0x1b0]
push ecx
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebx + 0x2c]
add eax, edx
push eax
call fcn.004cad9c
add esp, 0xc
jmp 0x4cff16
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebx + 0x28]
cmp eax, edx
jl 0x4cfe5e
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebp - 0x1b0]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov dl, byte [ebx + 0x30]
mov ecx, dword [ebp - 0x1b0]
inc edx
and dl, 0xff
mov byte [ecx + 1], dl
mov eax, dword [ebp - 0x1a4]
push eax
mov edx, dword [ebp - 0x1ac]
push edx
mov ecx, dword [ebp - 0x1b0]
add ecx, 2
push ecx
call fcn.004cad94
mov eax, dword [ebp - 0x1b0]
mov edx, dword [ebp - 0x1a4]
add esp, 0xc
mov byte [eax + edx + 2], 0
inc dword [ebp - 0x68]
inc dword [ebx + 0x28]
jmp 0x4d0534
mov dword [ebp - 0xcc], 0x29
mov dword [ebp - 0xa4], 1
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x1ac], ecx
jmp 0x4cff96
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 0x10
jne 0x4cff93
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x1ac]
sub eax, edx
mov dword [ebp - 0x1a4], eax
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4d001b
mov eax, dword [ebp - 0x1a4]
test eax, eax
jne 0x4cffd6
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3e
jmp 0x4d0c80
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x4cfff5
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x2a
jmp 0x4d0c80
mov eax, dword [ebp - 0x1a4]
cmp eax, 0x20
jle 0x4d000e
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x30
jmp 0x4d0c80
xor ecx, ecx
mov dword [ebp - 0xb8], ecx
jmp 0x4d00e7
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x1b0], eax
xor edx, edx
mov dword [ebp - 0x198], edx
jmp 0x4d0075
mov ecx, dword [ebp - 0x1a4]
push ecx
mov eax, dword [ebp - 0x1b0]
add eax, 2
push eax
mov edx, dword [ebp - 0x1ac]
push edx
call fcn.004cadac
add esp, 0xc
test eax, eax
jne 0x4d0066
mov ecx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1a4]
mov dl, byte [ecx + eax + 2]
test dl, dl
je 0x4d0082
mov ecx, dword [ebx + 0x2c]
add dword [ebp - 0x1b0], ecx
inc dword [ebp - 0x198]
mov eax, dword [ebp - 0x198]
mov edx, dword [ebx + 0x28]
cmp eax, edx
jl 0x4d002e
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebx + 0x28]
cmp ecx, eax
jge 0x4d00b1
mov edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b0]
xor ecx, ecx
mov cl, byte [edx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 1]
or ecx, edx
mov dword [ebp - 0xb8], ecx
jmp 0x4d00e7
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
push ecx
mov ecx, dword [ebp - 0x1a4]
mov edx, dword [ebp - 0x1ac]
mov eax, ebx
call fcn.004cb880
mov dword [ebp - 0xb8], eax
test eax, eax
jg 0x4d00e7
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0xf
jmp 0x4d0c80
mov ecx, dword [ebp - 0xa4]
test ecx, ecx
jne 0x4d022f
jmp 0x4d09fe
inc dword [ebp - 0x68]
mov dword [ebp - 0xcc], 0x29
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
mov dword [ebp - 0xbc], edx
cmp edx, 0x2b
jne 0x4d013a
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [eax]
test byte [ecx + 0x5bb809], 4
jne 0x4d015d
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x3f
jmp 0x4d0c80
mov edx, dword [ebp - 0xbc]
cmp edx, 0x2d
jne 0x4d015d
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
test byte [eax + 0x5bb809], 4
je case.0x4cf643.34
inc dword [ebp - 0x68]
xor edx, edx
mov dword [ebp - 0xb8], edx
jmp 0x4d0187
mov ecx, dword [ebp - 0xb8]
mov eax, dword [ebp - 0x68]
add ecx, ecx
xor edx, edx
mov dl, byte [eax]
lea ecx, [ecx + ecx*4]
add ecx, edx
add ecx, 0xffffffd0
mov dword [ebp - 0xb8], ecx
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx]
test byte [eax + 0x5bb809], 4
jne 0x4d0167
mov edx, dword [ebp - 0x68]
xor ecx, ecx
mov cl, byte [edx]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x4d01b6
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x1d
jmp 0x4d0c80
mov ecx, dword [ebp - 0xbc]
cmp ecx, 0x2d
jne 0x4d0203
mov eax, dword [ebp - 0xb8]
test eax, eax
jne 0x4d01d9
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x3a
jmp 0x4d0c80
mov ecx, dword [ebx + 0x30]
mov eax, dword [ebp - 0xb8]
sub ecx, eax
inc ecx
mov dword [ebp - 0xb8], ecx
mov edx, dword [ebp - 0xb8]
test edx, edx
jg 0x4d022f
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0xf
jmp 0x4d0c80
mov eax, dword [ebp - 0xbc]
cmp eax, 0x2b
jne 0x4d022f
mov edx, dword [ebp - 0xb8]
test edx, edx
jne 0x4d0226
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x3a
jmp 0x4d0c80
mov eax, dword [ebx + 0x30]
add dword [ebp - 0xb8], eax
mov dword [ebp - 0x70], esi
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x1bc], edx
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4d031a
mov byte [esi], 0
mov eax, dword [ebp - 0xb8]
test eax, eax
je 0x4d026a
mov ecx, dword [ebp - 0xb8]
mov edx, dword [ebp - 0x80]
mov eax, dword [ebx + 0x14]
call fcn.004cbc14
mov dword [ebp - 0x1bc], eax
mov edx, dword [ebp - 0x1bc]
test edx, edx
jne 0x4d02d7
test byte [ebp - 0x48], 8
setne cl
and ecx, 1
xor edx, edx
push ecx
mov eax, ebx
mov ecx, dword [ebp - 0xb8]
call fcn.004cb880
test eax, eax
jge 0x4d02a0
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xf
jmp 0x4d0c80
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebp - 0xb8]
add edx, ecx
lea eax, [esi + 4]
mov dword [ebp - 0x1bc], edx
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x20]
sub eax, edx
sar eax, 8
mov byte [ecx], al
lea eax, [esi + 4]
mov edx, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x20]
sub eax, edx
and al, 0xff
mov byte [ecx + 1], al
add dword [ebx + 0x20], 2
jmp 0x4d031a
mov eax, dword [ebp - 0x1bc]
xor edx, edx
mov ecx, dword [ebp - 0x1bc]
mov dl, byte [eax + 1]
xor eax, eax
shl edx, 8
mov al, byte [ecx + 2]
or edx, eax
jne 0x4d031a
mov edx, dword [ebp - 0x80]
push edx
mov ecx, dword [ebp + 0x10]
mov edx, esi
mov eax, dword [ebp - 0x1bc]
call fcn.004cc02c
test eax, eax
je 0x4d031a
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x28
jmp 0x4d0c80
mov byte [esi], 0x5d
mov byte [esi + 1], 0
mov byte [esi + 2], 6
add esi, 3
mov byte [esi], 0x52
mov eax, dword [ebp - 0x1bc]
mov edx, dword [ebx + 0x14]
sub eax, edx
sar eax, 8
mov byte [esi + 1], al
mov eax, dword [ebx + 0x14]
mov ecx, dword [ebp - 0x1bc]
sub ecx, eax
and cl, 0xff
mov byte [esi + 2], cl
add esi, 3
mov byte [esi], 0x55
mov byte [esi + 1], 0
mov byte [esi + 2], 6
mov dword [ebp - 0x50], 9
add esi, 3
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4d0c78
mov dword [ebp - 0x2c], 0xffffffff
jmp 0x4d0c78
xor ecx, ecx
lea eax, [ebp - 0x19c]
mov dword [ebp - 0x1a0], ecx
mov dword [ebp - 0x19c], ecx
mov dword [ebp - 0x1a8], eax
jmp 0x4d044a
mov edx, dword [ebp - 0x68]
inc dword [ebp - 0x68]
xor eax, eax
mov al, byte [edx]
cmp eax, 0x69
jg 0x4d03c3
je 0x4d03f4
sub eax, 0x2d
je 0x4d03d4
sub eax, 0x1d
je 0x4d03e2
sub eax, 0xb
je 0x4d0420
sub eax, 3
je 0x4d042e
jmp 0x4d0439
sub eax, 0x6d
je 0x4d03ff
sub eax, 6
je 0x4d040a
sub eax, 5
je 0x4d0415
jmp 0x4d0439
lea edx, [ebp - 0x1a0]
mov dword [ebp - 0x1a8], edx
jmp 0x4d044a
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x80000
or dword [ebx + 0x44], 0x10
jmp 0x4d044a
mov eax, dword [ebp - 0x1a8]
or dword [eax], 1
jmp 0x4d044a
mov edx, dword [ebp - 0x1a8]
or dword [edx], 2
jmp 0x4d044a
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 4
jmp 0x4d044a
mov eax, dword [ebp - 0x1a8]
or dword [eax], 8
jmp 0x4d044a
mov edx, dword [ebp - 0x1a8]
or dword [edx], 0x200
jmp 0x4d044a
mov ecx, dword [ebp - 0x1a8]
or dword [ecx], 0x40
jmp 0x4d044a
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xc
dec dword [ebp - 0x68]
jmp 0x4d0c80
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x29
je 0x4d0462
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3a
jne 0x4d039c
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x19c]
or ecx, eax
mov edx, dword [ebp - 0x1a0]
not edx
and ecx, edx
mov dword [ebp - 0xb4], ecx
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx]
cmp al, 0x29
jne 0x4d0519
mov edx, dword [ebx + 0x14]
add edx, 3
cmp esi, edx
jne 0x4d04b0
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x4d04a5
mov eax, dword [ebp + 8]
mov edx, dword [eax]
cmp edx, 6
jne 0x4d04b0
mov ecx, dword [ebp - 0xb4]
mov dword [ebx + 0x40], ecx
jmp 0x4d0501
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0xb4]
and edx, 7
and eax, 7
cmp eax, edx
je 0x4d04d3
mov byte [esi], 0x19
inc esi
mov cl, byte [ebp - 0xb4]
and cl, 7
mov byte [esi], cl
inc esi
test byte [ebp - 0xb3], 2
setne al
and eax, 1
mov dword [ebp - 0x24], eax
mov edx, dword [ebp - 0x24]
xor edx, 1
mov dword [ebp - 0x28], edx
test byte [ebp - 0xb4], 1
je 0x4d04fc
mov ecx, pe_nt_image_headers32
jmp 0x4d04fe
xor ecx, ecx
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x48], eax
mov edx, dword [ebp - 4]
mov dword [edx], eax
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x4d0c78
mov dword [ebp - 0x20], 0x5e
inc dword [ebp - 0x68]
jmp 0x4d0553
test byte [ebp - 0x47], 0x10
je 0x4d0534
mov dword [ebp - 0x20], 0x5e
jmp 0x4d0553
inc dword [ebx + 0x30]
mov eax, dword [ebx + 0x30]
sar eax, 8
mov byte [esi + 3], al
mov dl, byte [ebx + 0x30]
and dl, 0xff
mov byte [esi + 4], dl
mov dword [ebp - 0xc0], 2
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x5d
jl 0x4d055f
mov eax, esi
jmp 0x4d0561
xor eax, eax
mov dword [ebp - 0x70], eax
xor eax, eax
mov dl, byte [ebp - 0x20]
mov byte [esi], dl
mov dword [ebp - 0x5c], esi
mov ecx, dword [ebx + 0x48]
lea edx, [ebp - 0x68]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x50], eax
push edx
mov ecx, dword [ebp + 0x1c]
push ecx
mov eax, dword [ebp - 0x20]
cmp eax, 0x5a
je 0x4d0593
mov edx, dword [ebp - 0x20]
cmp edx, 0x5b
je 0x4d0593
xor ecx, ecx
jmp 0x4d0598
mov ecx, 1
push ecx
lea ecx, [ebp - 0xc8]
mov eax, dword [ebp - 0xa8]
push eax
lea eax, [ebp - 0xc4]
mov edx, dword [ebp - 0xc0]
push edx
push ecx
push eax
mov edx, dword [ebp + 0x10]
push edx
push ebx
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4d05c5
xor eax, eax
jmp 0x4d05c8
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x5c]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0xb4]
and edx, 7
call fcn.004d0c9c
test eax, eax
je 0x4d0c80
mov edx, dword [ebp - 0x20]
cmp edx, 0x60
jne 0x4d0696
mov ecx, dword [ebp + 8]
test ecx, ecx
jne 0x4d0696
mov dword [ebp - 0x1c0], esi
xor eax, eax
mov dword [ebp - 0x1c4], eax
inc dword [ebp - 0x1c4]
xor ecx, ecx
mov edx, dword [ebp - 0x1c0]
mov eax, dword [ebp - 0x1c0]
mov cl, byte [edx + 1]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + 2]
or ecx, edx
add dword [ebp - 0x1c0], ecx
mov ecx, dword [ebp - 0x1c0]
mov al, byte [ecx]
cmp al, 0x55
jne 0x4d060a
mov dl, byte [esi + 3]
cmp dl, 0x66
jne 0x4d0665
mov ecx, dword [ebp - 0x1c4]
dec ecx
jle 0x4d065c
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x36
jmp 0x4d0c80
mov dword [ebp - 0x20], 0x66
jmp 0x4d0696
mov edx, dword [ebp - 0x1c4]
cmp edx, 2
jle 0x4d067e
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], 0x1b
jmp 0x4d0c80
mov eax, dword [ebp - 0x1c4]
dec eax
jne 0x4d0696
or edx, 0xffffffff
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xc8], edx
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
cmp cl, 0x29
je 0x4d06ae
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0xe
jmp 0x4d0c80
mov edx, dword [ebp + 8]
test edx, edx
je 0x4d0705
mov ecx, dword [ebp + 8]
mov eax, 0x7fffffeb
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x50]
add ecx, 0xfffffffa
sub eax, edx
cmp eax, ecx
jge 0x4d06d9
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x14
jmp 0x4d0c80
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x50]
add edx, 0xfffffffa
add dword [ecx], edx
mov byte [esi], 0x5e
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
mov byte [esi], 0x55
inc esi
mov byte [esi], 0
mov byte [esi + 1], 3
add esi, 2
jmp 0x4d0c78
mov esi, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x20]
cmp eax, 0x66
je 0x4d0c78
mov edx, dword [ebp - 0x30]
xor eax, eax
mov dword [ebp - 0x34], edx
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x64], eax
mov edx, dword [ebp - 0x20]
cmp edx, 0x5d
jl 0x4d07a2
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4d0761
mov eax, dword [ebp - 0xc8]
test eax, eax
jl 0x4d0751
mov edx, dword [ebp - 0xc8]
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x64], 1
jmp 0x4d0758
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x38], 0xffffffff
jmp 0x4d0786
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
jl 0x4d0786
mov eax, dword [ebp - 0xc4]
test eax, eax
jge 0x4d0786
mov edx, dword [ebp - 0xc8]
mov ecx, dword [ebp - 0x44]
or edx, ecx
mov dword [ebp - 0xc4], edx
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x4d0c78
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x4d0c78
mov ecx, dword [ebp - 0x20]
cmp ecx, 0x58
jne 0x4d0c78
mov eax, dword [ebp - 0xc4]
test eax, eax
jl 0x4d0c78
mov edx, dword [ebp - 0xc4]
mov dword [ebp - 0x30], edx
jmp 0x4d0c78
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 0x6c], ecx
mov eax, dword [ebp - 0x48]
push eax
push 0
lea eax, [ebp - 0x68]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 0x1c]
call fcn.004caec4
mov edi, eax
mov eax, dword [ebp + 0x1c]
mov edx, dword [eax]
test edx, edx
jne 0x4d0c80
test edi, edi
jge 0x4d0b0c
mov ecx, edi
neg ecx
cmp ecx, 0x1a
jne 0x4d082e
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x5c
jne 0x4d0822
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 2]
cmp al, 0x45
jne 0x4d0822
add dword [ebp - 0x68], 2
jmp 0x4d0c78
mov dword [ebp - 0x60], 1
jmp 0x4d0c78
mov edx, edi
neg edx
cmp edx, 0x19
je 0x4d0c78
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4d085c
mov eax, edi
neg eax
cmp eax, 5
jle 0x4d085c
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x4d085c
mov dword [ebp - 0x2c], 0xffffffff
mov ecx, dword [ebp - 0x2c]
mov edx, edi
neg edx
mov dword [ebp - 0x38], ecx
cmp edx, 0x1b
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x34], eax
jne 0x4d0984
mov ecx, dword [ebx + 0x20]
mov dword [ebp - 0x78], ecx
inc dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
mov dl, byte [eax]
cmp dl, 0x3c
jne 0x4d088f
mov ecx, 0x3e
jmp 0x4d0894
mov ecx, 0x27
mov dword [ebp - 0xcc], ecx
xor eax, eax
mov dword [ebp - 0xc0], eax
xor edx, edx
mov dword [ebp - 0xa8], edx
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x2b
je 0x4d094a
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x2d
je 0x4d094a
mov dword [ebp - 0x1c8], 1
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x4d08fa
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebx + 0xc]
test byte [ecx + edx], 4
jne 0x4d08ec
xor edx, edx
mov dword [ebp - 0x1c8], edx
xor ecx, ecx
mov cl, byte [eax]
mov edx, dword [ebx + 0xc]
test byte [edx + ecx], 0x10
je 0x4d090e
inc eax
mov cl, byte [eax]
test cl, cl
je 0x4d090e
xor edx, edx
mov dl, byte [eax]
mov ecx, dword [ebp - 0xcc]
cmp edx, ecx
jne 0x4d08d7
movzx eax, byte [eax]
mov edx, dword [ebp - 0xcc]
cmp eax, edx
je 0x4d0929
mov eax, dword [ebp + 0x1c]
mov dword [eax], 0x39
jmp 0x4d0c78
mov ecx, dword [ebp - 0x1c8]
test ecx, ecx
je 0x4d093b
inc dword [ebp - 0x68]
jmp 0x4d0107
mov dword [ebp - 0xa4], 1
jmp 0x4cff85
mov eax, dword [ebp - 0x68]
add eax, 2
jmp 0x4d0953
inc eax
xor edx, edx
mov dl, byte [eax]
test byte [edx + 0x5bb809], 4
jne 0x4d0952
xor ecx, ecx
mov cl, byte [eax]
mov eax, dword [ebp - 0xcc]
cmp ecx, eax
je 0x4d097c
mov edx, dword [ebp + 0x1c]
mov dword [edx], 0x39
jmp 0x4d0c78
inc dword [ebp - 0x68]
jmp 0x4d0107
mov ecx, edi
neg ecx
cmp ecx, 0x1c
jne 0x4d09ea
mov eax, dword [ebp - 0x68]
mov dl, byte [eax + 1]
cmp dl, 0x3c
je 0x4d09ad
mov ecx, dword [ebp - 0x68]
mov al, byte [ecx + 1]
cmp al, 0x27
je 0x4d09ad
mov edx, dword [ebp - 0x68]
mov cl, byte [edx + 1]
cmp cl, 0x7b
jne 0x4d09ea
xor eax, eax
mov dword [ebp - 0xa4], eax
inc dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x3c
jne 0x4d09c9
mov eax, 0x3e
jmp 0x4d09df
mov edx, dword [ebp - 0x68]
mov cl, byte [edx]
cmp cl, 0x27
jne 0x4d09da
mov eax, 0x27
jmp 0x4d09df
mov eax, 0x7d
mov dword [ebp - 0xcc], eax
jmp 0x4cff85
mov edx, edi
neg edx
cmp edx, 0x1d
jl 0x4d0a6f
neg edi
add edi, 0xffffffe3
mov dword [ebp - 0xb8], edi
mov ecx, dword [ebp - 0x2c]
cmp ecx, 0xfffffffe
jne 0x4d0a0d
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x70], esi
mov byte [esi], 0x51
inc esi
mov eax, dword [ebp - 0xb8]
sar eax, 8
mov byte [esi], al
mov dl, byte [ebp - 0xb8]
and dl, 0xff
mov byte [esi + 1], dl
add esi, 2
mov ecx, dword [ebp - 0xb8]
cmp ecx, 0x20
jge 0x4d0a48
mov ecx, dword [ebp - 0xb8]
mov eax, 1
shl eax, cl
jmp 0x4d0a4d
mov eax, 1
or dword [ebx + 0x3c], eax
mov edx, dword [ebp - 0xb8]
mov ecx, dword [ebx + 0x38]
cmp edx, ecx
jle 0x4d0c78
mov eax, dword [ebp - 0xb8]
mov dword [ebx + 0x38], eax
jmp 0x4d0c78
mov edx, edi
neg edx
cmp edx, 0xf
je 0x4d0a81
mov ecx, edi
neg ecx
cmp ecx, 0x10
jne 0x4d0ae5
mov eax, dword [ebp + 0x1c]
lea ecx, [ebp - 0x1d0]
push eax
lea eax, [ebp - 0x68]
lea edx, [ebp - 0x1cc]
call fcn.004cb2a0
mov dword [ebp - 0x1d4], eax
mov edx, dword [ebp - 0x1d4]
test edx, edx
jl 0x4d0c80
neg edi
cmp edi, 0x10
mov dword [ebp - 0x70], esi
sete cl
and ecx, 1
mov eax, dword [ebp - 0x1cc]
cmp ecx, eax
je 0x4d0ac9
mov dl, 0x10
jmp 0x4d0acb
mov dl, 0xf
mov byte [esi], dl
inc esi
mov al, byte [ebp - 0x1d4]
mov byte [esi], al
inc esi
mov cl, byte [ebp - 0x1d0]
mov byte [esi], cl
inc esi
jmp 0x4d0c78
mov eax, edi
neg eax
cmp eax, 5
jle 0x4d0afb
mov edx, edi
neg edx
cmp edx, 0x17
jge 0x4d0afb
mov ecx, esi
jmp 0x4d0afd
xor ecx, ecx
mov dword [ebp - 0x70], ecx
mov eax, edi
neg al
mov byte [esi], al
inc esi
jmp 0x4d0c78
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4d0b2d
cmp edi, 0x7f
jle 0x4d0b2d
lea edx, [ebp - 0xd8]
mov eax, edi
call fcn.004db400
mov dword [ebp - 0xd0], eax
jmp 0x4d0b93
mov ecx, edi
mov byte [ebp - 0xd8], cl
mov dword [ebp - 0xd0], 1
jmp 0x4d0b93
mov dword [ebp - 0xd0], 1
mov eax, edi
mov byte [ebp - 0xd8], al
mov edx, dword [ebp - 0x80]
test edx, edx
je 0x4d0b93
cmp edi, 0xc0
jl 0x4d0b93
jmp 0x4d0b7f
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0xd0]
mov al, byte [ecx]
mov byte [ebp + edx - 0xd8], al
inc dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x68]
xor eax, eax
mov al, byte [ecx + 1]
and eax, 0xc0
cmp eax, 0x80
je 0x4d0b64
mov dword [ebp - 0x70], esi
test byte [ebp - 0x48], 1
je 0x4d0ba0
mov dl, 0x1d
jmp 0x4d0ba2
mov dl, 0x1c
mov byte [esi], dl
lea eax, [ebp - 0xd8]
mov dword [ebp - 0x1dc], eax
inc esi
mov edx, dword [ebp - 0xd0]
xor edi, edi
cmp edi, edx
jge 0x4d0bd9
mov ecx, dword [ebp - 0x1dc]
mov al, byte [ecx]
mov byte [esi], al
inc esi
inc edi
inc dword [ebp - 0x1dc]
mov edx, dword [ebp - 0xd0]
cmp edi, edx
jl 0x4d0bbd
mov cl, byte [ebp - 0xd8]
cmp cl, 0xd
je 0x4d0bee
mov al, byte [ebp - 0xd8]
cmp al, 0xa
jne 0x4d0bf2
or dword [ebx + 0x44], 0x20
mov edx, dword [ebp - 0x2c]
cmp edx, 0xfffffffe
jne 0x4d0c4a
mov dword [ebp - 0x38], 0xffffffff
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x4d0c17
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x4d0c3f
xor ecx, ecx
mov cl, byte [ebp - 0xd8]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 0xd0]
dec edx
je 0x4d0c78
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebx + 0x48]
or ecx, eax
mov dword [ebp - 0x30], ecx
jmp 0x4d0c78
or edx, 0xffffffff
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x2c], edx
jmp 0x4d0c78
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x30]
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp - 0xd0]
dec eax
je 0x4d0c66
mov edx, dword [ebp - 0x3c]
test edx, edx
jne 0x4d0c78
xor ecx, ecx
mov cl, byte [esi - 1]
mov eax, dword [ebp - 0x3c]
or ecx, eax
mov edx, dword [ebx + 0x48]
or ecx, edx
mov dword [ebp - 0x30], ecx
inc dword [ebp - 0x68]
jmp 0x4cce13
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x68]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18