Function at 0x4ee530
Capabilities:
Encode data using base64
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x98
push ebx
push ebp
xor eax, eax
xor ecx, ecx
push esi
mov esi, dword [esp + 0xac]
xor edx, edx
push edi
mov edi, dword [esp + 0xb8]
mov ebx, esi
mov dword [esp + 0x88], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
mov eax, dword [edi + 0x80]
mov ebp, dword [edi + 0x7c]
mov dword [esp + 0x84], eax
mov eax, dword [edi]
shr ebx, 2
and ebx, 1
mov dword [esp + 0x18], edx
mov dword [esp + 0x6c], ebx
mov ecx, dword [eax + 0x24]
xor eax, eax
mov ebx, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x68], eax
mov eax, esi
shr eax, 0x13
and eax, 1
mov dword [esp + 0x7c], ecx
and dword [esp + 0x7c], 8
mov dword [esp + 0x64], edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x58], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x8c], edx
je 0x4ee5e1
mov dword [ebp], 0x80090000
jmp 0x4ee5ed
test cl, 4
je 0x4ee5fb
mov dword [ebp], 0x80180005
mov dword [ebp + 4], 0x801a0000
add ebp, 8
mov dword [esp + 0x1c], ebp
test esi, 0x2000000
je 0x4ee76a
mov esi, dword [esp + 0xac]
cmp esi, ebx
jae 0x4ee6f9
nop word [eax + eax]
cmp ebp, dword [esp + 0x84]
jae 0x4f0edc
movzx ecx, word [esi]
mov edx, esi
lea esi, [edx + 2]
test eax, eax
je 0x4ee663
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ee663
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
cmp dword [esp + 0x6c], 0
je 0x4ee6dc
cmp dword [esp + 0x18], 0
mov edi, ebp
je 0x4ee6a3
mov ebx, dword [esp + 0xb8]
mov eax, edx
sub eax, dword [ebx + 0x1c]
mov ebx, dword [esp + 0x18]
sar eax, 1
sub eax, dword [ebx + 4]
mov dword [ebx + 8], eax
lea eax, [ebp - 0x10]
cmp ebx, eax
mov ebx, dword [esp + 0x10]
jne 0x4ee6a3
mov eax, dword [esp + 0x18]
cmp dword [eax + 0xc], 0xff
je 0x4ee6bf
mov dword [esp + 0x18], ebp
lea edi, [ebp + 0x10]
mov dword [ebp], 0x80060000
mov dword [ebp + 8], 0
mov dword [ebp + 0xc], 0xff
mov eax, dword [esp + 0xb8]
mov ebp, edi
sub edx, dword [eax + 0x1c]
mov eax, dword [esp + 0x18]
sar edx, 1
mov dword [eax + 4], edx
mov edx, eax
mov dword [esp + 0x18], edx
jmp 0x4ee6e0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x48]
mov dword [ebp], ecx
add ebp, 4
cmp esi, ebx
jb 0x4ee620
mov edi, dword [esp + 0xb8]
xor ebx, ebx
mov ecx, ebp
test edx, edx
je 0x4ee70e
mov eax, esi
sub eax, dword [edi + 0x1c]
sar eax, 1
sub eax, dword [edx + 4]
mov dword [edx + 8], eax
cmp dword [esp + 0x6c], 0
je 0x4ee74d
test edx, edx
je 0x4ee729
lea eax, [ebp - 0x10]
cmp edx, eax
jne 0x4ee729
cmp dword [edx + 0xc], 0xff
je 0x4ee743
mov edx, ebp
mov dword [ebp], 0x80060000
lea ecx, [ebp + 0x10]
mov dword [ebp + 8], 0
mov dword [ebp + 0xc], 0xff
mov eax, esi
sub eax, dword [edi + 0x1c]
sar eax, 1
mov dword [edx + 4], eax
cmp dword [esp + 0x7c], 0
je 0x4f0eb9
mov dword [ecx], 0x80190000
mov dword [ecx + 4], 0x80160000
jmp 0x4f0ed0
mov ecx, dword [edi + 0x28]
xor eax, eax
mov dword [esp + 0x40], eax
add ecx, ecx
xor edx, edx
mov eax, ecx
mov ebx, 0xc
div ebx
mov eax, dword [edi + 0x14]
sub eax, edx
mov edx, esi
add eax, ecx
or edx, 0x80
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], eax
mov eax, esi
and eax, 0x1000000
cmove edx, esi
mov esi, dword [esp + 0xac]
mov dword [esp + 0x2c], edx
xor edx, edx
xor ebx, ebx
jmp 0x4ee7e0
mov ecx, dword [esp + 0x10]
jmp 0x4ee7e0
mov edi, dword [esp + 0xb8]
jmp 0x4ee7e0
mov dword [esp + 0x20], 1
add ebp, 4
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
nop
movzx eax, bx
mov dword [esp + 0xa0], eax
cmp esi, ecx
jae 0x4f0ea7
cmp ebp, dword [esp + 0x84]
jae 0x4f0edc
mov ecx, dword [edi]
movzx eax, bx
cmp eax, dword [ecx + 0x20]
ja 0x4f0ea0
cmp dword [esp + 0x48], 0
mov edx, esi
movzx edi, word [esi]
mov dword [esp + 0x24], edx
mov ebx, edi
mov dword [esp + 0x44], edi
lea esi, [edx + 2]
mov eax, esi
mov dword [esp + 0xac], esi
mov dword [esp + 0x30], eax
je 0x4ee87a
mov eax, edi
mov dword [esp + 0x30], esi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ee876
movzx eax, word [esi]
and edi, 0x3ff
and eax, 0x3ff
shl edi, 0xa
or edi, eax
add edi, 0x10000
add esi, 2
mov eax, esi
mov dword [esp + 0x44], edi
mov dword [esp + 0xac], esi
mov ebx, edi
mov dword [esp + 0x30], eax
jmp 0x4ee87a
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x34], 0
je 0x4ee910
cmp ebx, 0x5c
jne 0x4ee8a8
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jae 0x4ee8a8
cmp word [esi], 0x45
jne 0x4ee8a8
mov dword [esp + 0x34], 0
lea esi, [eax + 2]
jmp 0x4ee7d0
cmp dword [esp + 0x60], 0
jg case.0x4eed67.34
cmp dword [esp + 0x68], 0
jne 0x4ee8f5
mov ecx, dword [esp + 0x5c]
mov eax, ecx
dec ecx
mov dword [esp + 0x5c], ecx
test eax, eax
jg 0x4ee8ed
push dword [esp + 0xb8]
lea eax, [esp + 0x68]
push ebp
push dword [esp + 0x74]
push eax
push edx
call fcn.004ee4b0
mov ebp, eax
add esp, 0x14
mov eax, dword [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], 1
mov dword [esp + 0x58], 0
mov dword [ebp], edi
add ebp, 4
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x10]
jmp 0x4ee7d0
cmp dword [esp + 0x68], 0
je 0x4eea7a
mov eax, dword [esp + 0x2c]
and eax, 0x400080
cmp eax, 0x400080
jne 0x4ee97b
cmp ebx, 0xff
jbe 0x4ee946
mov eax, ebx
or eax, 1
cmp eax, 0x200f
je 0x4ee946
cmp eax, 0x2029
jne 0x4ee97b
cmp ebx, 0x100
jae 0x4eea7a
cmp ebx, 0x23
je 0x4eea7a
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 0x10]
test byte [edi + eax], 1
jne 0x4eea7a
cmp ebx, 0x85
je 0x4eea7a
cmp ebx, 0x29
je 0x4eea14
cmp ebx, 0x5c
jne 0x4ee8fd
mov edx, dword [esp + 0x2c]
test edx, 0x400000
je 0x4ee9de
push dword [esp + 0xb8]
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x2c]
push 0
push dword [ecx + 0x24]
push edx
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0xc4]
push ebx
push eax
call fcn.004e8550
mov ecx, dword [esp + 0x48]
add esp, 0x20
test ecx, ecx
jne 0x4f0e4e
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0x44]
jmp 0x4ee9e0
xor eax, eax
sub eax, 0
je 0x4ee8fd
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
sub eax, 0x19
je 0x4ee7b8
sub eax, 1
jne 0x4f0cfb
mov dword [esp + 0x34], 1
jmp 0x4ee7d0
mov eax, esi
mov dword [esp + 0x68], 0
sub eax, dword [esp + 0x8c]
sar eax, 1
dec eax
cmp eax, 0xffff
jg 0x4f0d05
mov ecx, dword [esp + 0x88]
mov eax, ebp
mov edi, dword [esp + 0xb8]
sub eax, ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
sar eax, 2
dec eax
mov dword [ecx], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4ee7e0
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x74], 0
jmp 0x4ee7d7
cmp ebx, 0x5c
jne 0x4eeaae
mov ecx, dword [esp + 0x30]
cmp ecx, dword [esp + 0x10]
jae 0x4eeaae
movzx eax, word [esi]
cmp eax, 0x51
je 0x4eea96
cmp eax, 0x45
jne 0x4eeaae
xor ebx, ebx
lea esi, [ecx + 2]
mov ecx, dword [esp + 0x10]
cmp eax, 0x51
sete bl
mov dword [esp + 0x34], ebx
jmp 0x4ee7d0
test byte [esp + 0x2c], 0x80
je 0x4eebd3
cmp ebx, 0x100
jae 0x4eead5
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 0x10]
test byte [edi + eax], 1
jne 0x4ee907
cmp ebx, 0x85
je 0x4ee907
mov eax, ebx
or eax, 1
cmp eax, 0x200f
je 0x4ee907
cmp eax, 0x2029
je 0x4ee907
cmp ebx, 0x23
jne 0x4eebd3
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
cmp esi, ecx
jae 0x4ee7e0
mov ebx, ecx
mov eax, dword [edi + 0x90]
mov ecx, dword [edi + 0x20]
test eax, eax
je 0x4eeb56
cmp esi, ecx
jae 0x4eeb83
push dword [esp + 0x48]
add edi, 0x94
push edi
push ecx
push eax
push esi
call fcn.0051d430
add esp, 0x14
test eax, eax
jne 0x4eebc0
mov edi, dword [esp + 0xb8]
jmp 0x4eeb83
mov edx, dword [edi + 0x94]
lea eax, [edx + edx]
sub ecx, eax
cmp esi, ecx
ja 0x4eeb83
mov ax, word [esi]
cmp ax, word [edi + 0xa0]
jne 0x4eeb83
cmp edx, 1
je 0x4eebc9
mov ax, word [esi + 2]
cmp ax, word [edi + 0xa2]
je 0x4eebc9
add esi, 2
cmp dword [esp + 0x48], 0
mov ecx, esi
je 0x4eebad
cmp esi, ebx
jae 0x4eebad
mov ax, word [esi]
mov edx, 0xfc00
and ax, dx
mov edx, 0xdc00
cmp ax, dx
jne 0x4eebad
add esi, 2
mov ecx, esi
mov edx, dword [esp + 0x18]
cmp ecx, ebx
jb 0x4eeb22
mov ecx, ebx
jmp case.default.0x4ef156
mov edx, dword [edi]
mov edi, dword [esp + 0xb8]
lea esi, [esi + edx*2]
mov ecx, ebx
jmp 0x4ee7d7
cmp ebx, 0x28
jne 0x4eec16
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 4
jl 0x4eec50
cmp word [esi], 0x3f
jne 0x4eec50
cmp word [esi + 2], 0x23
jne 0x4eec50
add esi, 2
cmp esi, ecx
jae 0x4f0d16
cmp word [esi], 0x29
jne 0x4eebf5
cmp esi, ecx
jae 0x4f0d16
add esi, 2
jmp 0x4ee7d0
cmp ebx, 0x2a
je 0x4eec87
cmp ebx, 0x2b
je 0x4eec87
cmp ebx, 0x3f
je 0x4eec87
cmp ebx, 0x7b
jne 0x4eec50
lea eax, [esp + 0x28]
mov dword [esp + 0x54], esi
push eax
push 0
push 0
push dword [esp + 0x1c]
lea eax, [esp + 0x64]
push eax
call fcn.004f2720
add esp, 0x14
test eax, eax
jne 0x4eec87
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x5c]
mov eax, ecx
dec ecx
mov dword [esp + 0x5c], ecx
test eax, eax
jg 0x4eec87
push dword [esp + 0xb8]
lea eax, [esp + 0x68]
push ebp
push dword [esp + 0x74]
push eax
push edx
call fcn.004ee4b0
mov ebp, eax
add esp, 0x14
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x60]
test edx, edx
jle 0x4eecee
cmp ebx, 0x28
jne case.0x4eed67.34
mov ecx, dword [esp + 0x10]
mov eax, ecx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 6
jl case.0x4eed67.34
movzx eax, word [esi]
cmp eax, 0x3f
je 0x4eecbd
cmp eax, 0x2a
jne case.0x4eed67.34
cmp eax, 0x2a
movzx eax, word [esi + 2]
jne 0x4eed58
mov ecx, 0xff
cmp ax, cx
ja case.0x4eed67.34
mov ecx, eax
mov eax, dword [esp + 0xb8]
mov eax, dword [eax + 0x10]
test byte [ecx + eax], 4
je case.0x4eed67.34
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x24], edx
xor edx, edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x58]
mov eax, edx
mov dword [esp + 0x20], 0
mov dword [esp + 0x58], 0
test eax, eax
je 0x4eed9f
cmp edi, 0x3f
je 0x4eed28
cmp edi, 0x2b
jne 0x4eed9f
cmp edi, 0x3f
mov ecx, 0x10000
mov ebx, 0x20000
cmove ecx, ebx
add ecx, eax
xor eax, eax
cmp edx, 0x803d0000
setne al
lea eax, [eax*8 - 0xc]
mov dword [eax + ebp], ecx
mov ecx, dword [esp + 0x10]
jmp 0x4ee7d0
add eax, 0xffffffdf
cmp eax, 0x22
ja case.0x4eed67.34
movzx eax, byte [eax + 0x4f0f2c]
jmp dword [eax*4 + 0x4f0f1c]
movzx eax, word [esi + 4]
cmp eax, 0x3d
je case.0x4eed67.33
cmp eax, 0x21
je case.0x4eed67.33
mov esi, dword [esp + 0x30]
add esi, 0xfffffffe
mov ecx, 0x80
jmp 0x4f0f00
cmp edx, 2
jne case.0x4eed67.34
jmp case.0x4eed67.33
lea eax, [edi - 0x24]
cmp eax, 0x58
ja case.0x4eedb2.37
movzx eax, byte [eax + 0x4f0f84]
jmp dword [eax*4 + 0x4f0f50]
mov eax, dword [esp + 0xb8]
mov edi, esi
push eax
push 0
mov dword [esp + 0x5c], edi
mov eax, dword [eax]
push dword [eax + 0x24]
lea eax, [esp + 0x34]
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x58]
push eax
push ecx
lea eax, [esp + 0xc8]
push eax
call fcn.004e8550
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov esi, dword [esp + 0xac]
mov ebx, eax
mov edx, dword [esp + 0x10]
test ecx, ecx
jne 0x4eee0c
mov ecx, dword [esp + 0x44]
jmp 0x4eee75
mov edi, dword [esp + 0x54]
test byte [esp + 0x80], 2
je 0x4f0f00
mov esi, edi
mov dword [esp + 0xac], esi
cmp edi, edx
jb 0x4eee2e
mov ecx, 0x5c
jmp 0x4eee73
cmp dword [esp + 0x48], 0
lea esi, [edi + 2]
movzx ecx, word [edi]
mov dword [esp + 0xac], esi
je 0x4eee73
mov eax, ecx
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4eee73
movzx eax, word [esi]
and ecx, 0x3ff
shl ecx, 0xa
and eax, 0x3ff
or ecx, eax
add ecx, 0x10000
add esi, 2
mov dword [esp + 0xac], esi
xor ebx, ebx
test ebx, ebx
je 0x4ef1f8
js 0x4ef196
lea eax, [ebx - 6]
cmp eax, 0x16
ja case.0x4eee96.13
movzx eax, byte [eax + 0x4f0ff8]
jmp dword [eax*4 + 0x4f0fe0]
test dword [esp + 0x2c], 0x100000
je case.0x4eee96.12
mov ecx, 0xb7
mov dword [esp + 0x28], ecx
jmp 0x4eee0c
push dword [esp + 0xb8]
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], 0
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.004edf50
add esp, 0x18
test eax, eax
jne 0x4ef025
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
jmp 0x4eee0c
cmp esi, edx
jae 0x4ef00c
movzx eax, word [esi]
cmp eax, 0x7b
je 0x4eef31
cmp eax, 0x3c
je 0x4eef36
cmp eax, 0x27
jne 0x4ef00c
cmp eax, 0x3c
jne 0x4eef3d
mov edi, 0x3e
jmp 0x4eef4d
cmp eax, 0x27
mov edi, 0x7d
mov eax, 0x27
cmove edi, eax
cmp ebx, 0x1b
jne 0x4eefbf
cmp edi, 0x7d
je 0x4eefbf
lea eax, [esi + 2]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
push eax
mov eax, dword [esp + 0xc0]
push 0xa1
push 0xffff
push dword [eax + 0x74]
lea eax, [esp + 0x38]
push edx
push eax
call fcn.004f25e0
mov edx, dword [esp + 0x2c]
add esp, 0x1c
test eax, eax
je 0x4eefb3
mov ecx, dword [esp + 0x24]
cmp ecx, edx
jae 0x4eefa5
movzx eax, word [ecx]
cmp eax, edi
je 0x4ef074
mov ecx, 0x9d
mov dword [esp + 0x28], ecx
jmp 0x4eee08
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x4eee08
push dword [esp + 0xb8]
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push edi
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
jne 0x4ef088
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x10]
jmp 0x4eee08
cmp ebx, 0x1b
mov ecx, 0xa9
mov eax, 0x9d
cmove ecx, eax
mov dword [esp + 0x28], ecx
jmp 0x4eee0c
cmp dword [esp + 0x90], 0
je 0x4ef03a
xor eax, eax
cmp ebx, 0xf
sete al
lea ebx, [eax + 0xf]
movzx ecx, word [esp + 0x24]
lea eax, [ebx - 0x7fe80000]
mov esi, dword [esp + 0xac]
mov dword [ebp], eax
movzx eax, word [esp + 0x30]
shl ecx, 0x10
or ecx, eax
mov dword [esp + 0x20], 1
mov dword [ebp + 4], ecx
add ebp, 8
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov eax, dword [esp + 0x3c]
mov esi, ecx
mov edi, dword [esp + 0xb8]
mov ecx, edx
jmp 0x4f0997
cmp ebx, 0x1c
je 0x4ef097
mov eax, 0x80210000
cmp edi, 0x7d
jne 0x4ef09c
mov eax, 0x80040000
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x10]
mov dword [ebp], eax
mov eax, dword [esp + 0x38]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 8], eax
add ebp, 0xc
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov dword [esp + 0x20], 1
mov ecx, dword [esp + 0x10]
lea eax, [ebx - 0x7fe80000]
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
test dword [esp + 0x2c], 0x20000
mov dword [esp + 0x20], 1
jne 0x4ef118
mov ecx, dword [esp + 0x10]
lea eax, [ebx - 0x7fe80000]
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
cmp ebx, 7
je 0x4ef12c
cmp ebx, 9
je 0x4ef12c
mov eax, 0x8018000f
cmp ebx, 0xb
jne 0x4ef131
mov eax, 0x80180010
mov ecx, dword [esp + 0x10]
add ebx, 0xfffffffa
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
cmp ebx, 5
ja case.default.0x4ef156
jmp dword [ebx*4 + 0x4f1010]
mov dword [ebp], 0x3000d
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
mov dword [ebp], 0x60000
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
mov dword [ebp], 0x80000
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
mov edi, dword [esp + 0xb8]
neg ebx
mov ecx, esi
mov eax, ebx
or eax, 0x80030000
sub ecx, dword [edi + 0x1c]
sar ecx, 1
dec ecx
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x1c], ebp
cmp ebx, 0xa
jge 0x4ef1dd
cmp dword [edi + ebx*4 + 0x2c], 0xffffffff
jne 0x4ef1e7
mov dword [edi + ebx*4 + 0x2c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 1
jmp 0x4ee7d7
mov dword [ebp], ecx
add ebp, 4
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 1
jmp 0x4ee7d7
mov dword [ebp], ecx
add ebp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov dword [ebp], 0x80090000
jmp 0x4ee7c9
mov dword [ebp], 0x80160000
jmp 0x4ee7c9
mov dword [ebp], 0x80170000
jmp 0x4ee7c1
mov dword [esp + 0x58], 0x80340000
jmp 0x4ef2bf
mov dword [esp + 0x58], 0x80370000
jmp 0x4ef2bf
mov dword [esp + 0x58], 0x803a0000
jmp 0x4ef2bf
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x9c]
push eax
push ecx
lea eax, [esp + 0xbc]
push eax
call fcn.004f2720
add esp, 0x14
test eax, eax
jne 0x4ef2b0
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x4f0e4e
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x10]
mov dword [ebp], edi
add ebp, 4
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov esi, dword [esp + 0xac]
mov dword [esp + 0x58], 0x803d0000
test ebx, ebx
je 0x4f0d20
cmp dword [ebp - 4], 0x802a0000
lea ecx, [ebp - 4]
jne 0x4ef2fc
mov edx, dword [esp + 0x70]
cmp ecx, edx
jb 0x4ef2ec
nop dword [eax + eax]
mov eax, dword [ecx]
mov dword [ecx + 4], eax
sub ecx, 4
cmp ecx, edx
jae 0x4ef2e0
mov dword [edx], 0x801a0000
mov dword [ebp + 4], 0x80190000
add ebp, 8
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [ebp], eax
add ebp, 4
cmp edi, 0x7b
mov dword [esp + 0x1c], ebp
mov edi, dword [esp + 0xb8]
jne 0x4ee7e0
mov eax, dword [esp + 0x94]
mov dword [ebp], eax
mov eax, dword [esp + 0x98]
mov dword [ebp + 4], eax
add ebp, 8
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
mov eax, ecx
mov dword [esp + 0x20], 1
sub eax, esi
and eax, 0xfffffffe
cmp eax, 0xc
jl 0x4ef41c
push 6
push 0x845de4
push esi
call fcn.0051bc60
add esp, 0xc
test eax, eax
je 0x4ef38a
push 6
push str._:_:__
push esi
call fcn.0051bc60
add esp, 0xc
test eax, eax
jne 0x4ef418
mov dword [ebp], 0x80180005
lea eax, [ebp + 8]
cmp word [esi + 4], 0x3c
jne 0x4ef3a4
mov dword [ebp + 4], 0x80230000
jmp 0x4ef3c1
mov ecx, dword [esp + 0xb4]
mov dword [ebp + 4], 0x80250000
mov dword [ecx], 1
mov dword [eax], 0
add eax, 4
test dword [esp + 0x2c], 0x20000
lea ebp, [eax + 4]
jne 0x4ef3ee
mov ecx, dword [esp + 0x10]
mov dword [eax], 0x8018000b
mov dword [ebp], 0x80190000
add ebp, 4
add esi, 0xc
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov ecx, dword [esp + 0x10]
mov dword [eax], 0x80180010
mov dword [ebp], 0x80000
add ebp, 4
mov dword [ebp], 0x80190000
add ebp, 4
add esi, 0xc
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov ecx, dword [esp + 0x10]
cmp esi, ecx
jae 0x4ef44d
movzx eax, word [esi]
cmp eax, 0x3a
je 0x4ef432
cmp eax, 0x2e
je 0x4ef432
cmp eax, 0x3d
jne 0x4ef44d
lea eax, [esp + 0x54]
push eax
push ecx
push esi
call fcn.004e9710
add esp, 0xc
test eax, eax
jne 0x4f0d2d
mov ecx, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x24], edx
cmp esi, ecx
jae 0x4ef551
mov ebp, dword [esp + 0x48]
nop
movzx edi, word [esi]
add esi, 2
mov dword [esp + 0x44], edi
mov ecx, edi
mov dword [esp + 0xac], esi
mov ebx, esi
test ebp, ebp
je 0x4ef4b2
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ef4b2
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add esi, 2
mov dword [esp + 0x44], edi
mov ecx, edi
mov dword [esp + 0xac], esi
mov ebx, esi
cmp ecx, 0x5c
jne 0x4ef50f
mov ecx, dword [esp + 0x10]
cmp ebx, ecx
jae 0x4ef4d6
cmp word [esi], 0x45
jne 0x4ef4d6
mov eax, 2
lea esi, [eax + ebx]
mov dword [esp + 0xac], esi
jmp 0x4ef53f
mov eax, ecx
sub eax, ebx
and eax, 0xfffffffe
cmp eax, 6
jl 0x4ef54d
push 3
push 0x845df4
push esi
call fcn.0051bc60
mov edx, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x4ef54d
mov eax, 6
lea esi, [eax + ebx]
mov dword [esp + 0xac], esi
jmp 0x4ef53f
test dword [esp + 0x2c], 0x1000000
je 0x4ef523
cmp ecx, 0x20
je 0x4ef53b
cmp ecx, 9
je 0x4ef53b
test edx, edx
jne 0x4ef549
cmp ecx, 0x5e
mov ecx, dword [esp + 0x10]
jne 0x4ef54d
mov edx, 1
mov dword [esp + 0x24], edx
jmp 0x4ef53f
mov ecx, dword [esp + 0x10]
cmp esi, ecx
jb 0x4ef460
jmp 0x4ef54d
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x1c]
cmp edi, 0x5d
jne 0x4ef57a
mov eax, dword [esp + 0xb8]
test byte [eax + 0x6c], 1
je 0x4ef57a
test edx, edx
mov eax, 0x800b0000
mov edx, 0x800c0000
cmovne eax, edx
mov dword [ebp], eax
jmp 0x4ee7c9
test edx, edx
mov eax, 0x800a0000
mov edx, 0x800e0000
cmovne eax, edx
mov dword [ebp], eax
add ebp, 4
xor edx, edx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], edx
nop dword [eax]
cmp dword [esp + 0x34], 0
mov ebx, 1
je 0x4ef5d5
cmp edi, 0x5c
jne 0x4ef917
cmp esi, ecx
jae 0x4ef917
cmp word [esi], 0x45
jne 0x4ef917
xor ebx, ebx
add esi, 2
mov dword [esp + 0x34], ebx
jmp 0x4ef736
test dword [esp + 0x2c], 0x1000000
je 0x4ef5f1
cmp edi, 0x20
je 0x4ef732
cmp edi, 9
je 0x4ef732
cmp edi, 0x5b
jne 0x4ef807
mov eax, ecx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 6
jl 0x4ef917
movzx eax, word [esi]
cmp eax, 0x3a
je 0x4ef620
cmp eax, 0x2e
je 0x4ef620
cmp eax, 0x3d
jne 0x4ef917
lea eax, [esp + 0x54]
push eax
push ecx
push esi
call fcn.004e9710
add esp, 0xc
test eax, eax
je 0x4ef913
mov dword [esp + 0x24], 0
cmp dword [esp + 0x20], ebx
je 0x4efaad
cmp word [esi], 0x3a
jne 0x4f0d47
add esi, 2
mov ecx, esi
cmp word [esi], 0x5e
jne 0x4ef667
add esi, 2
mov dword [esp + 0x24], ebx
mov ecx, esi
mov ebx, dword [esp + 0x54]
mov ebp, str.alpha
sub ebx, ecx
sar ebx, 1
xor edi, edi
nop word [eax + eax]
movzx eax, byte [edi + 0x845bac]
cmp ebx, eax
jne 0x4ef69c
push ebx
push ebp
push ecx
call fcn.0051bc60
add esp, 0xc
test eax, eax
je 0x4ef6ba
mov ecx, esi
movzx eax, byte [edi + 0x845bac]
inc ebp
inc edi
add ebp, eax
cmp byte [edi + 0x845bac], 0
jne 0x4ef680
mov ecx, 0x82
jmp 0x4f0f00
test edi, edi
js 0x4ef6b0
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
add esi, 4
add eax, 0xfffffffe
cmp esi, eax
jae 0x4ef6e1
cmp word [esi], 0x2d
jne 0x4ef6e1
cmp word [esi + 2], 0x5d
jne 0x4efaad
xor edx, edx
test dword [esp + 0x2c], 0x20000
mov dword [esp + 0x20], edx
je 0x4ef7e5
mov eax, dword [edi*8 + 0x886ed8]
mov edx, dword [edi*8 + 0x886edc]
test eax, eax
js 0x4ef7be
mov ebp, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
xor ecx, 1
shl eax, 0x10
sub ecx, 0x7fe7fff1
or eax, edx
mov dword [ebp], ecx
mov dword [ebp + 4], eax
add ebp, 8
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
cmp esi, dword [esp + 0x10]
jae 0x4f0d78
movzx edi, word [esi]
add esi, 2
cmp dword [esp + 0x48], 0
mov ecx, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0xac], esi
je 0x4ef791
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ef791
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
and eax, 0x3ff
or edi, eax
add edi, 0x10000
add esi, 2
mov dword [esp + 0x44], edi
mov ecx, edi
mov dword [esp + 0xac], esi
cmp ecx, 0x5d
mov ecx, dword [esp + 0x10]
jne 0x4ef5a0
test ebx, ebx
jne 0x4ef5a0
cmp edx, 1
jne 0x4ef7b2
mov dword [ebp - 4], 0x2d
mov dword [ebp], 0x800d0000
jmp 0x4ee7c1
test edx, edx
mov edx, dword [esp + 0x20]
je 0x4ef7e5
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
xor eax, 1
sub eax, 0x7fe7ffee
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ef732
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
add eax, 0x801c
shl eax, 0x10
mov dword [ebp], eax
mov dword [ebp + 4], edi
add ebp, 8
mov dword [esp + 0x1c], ebp
jmp 0x4ef732
cmp edi, 0x2d
jne 0x4ef83a
cmp edx, 2
jb 0x4ef917
cmp edx, 3
mov eax, 0x801e0000
mov ecx, 0x801f0000
mov edx, ebx
cmove eax, ecx
mov dword [esp + 0x20], edx
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ef732
cmp edi, 0x5c
jne 0x4ef917
mov edi, dword [esp + 0xb8]
push edi
push 1
mov dword [esp + 0x5c], esi
mov eax, dword [edi]
push dword [eax + 0x24]
lea eax, [esp + 0x34]
push dword [esp + 0x38]
push eax
lea eax, [esp + 0x58]
push eax
push ecx
lea eax, [esp + 0xc8]
push eax
call fcn.004e8550
mov ecx, dword [esp + 0x48]
add esp, 0x20
mov ebx, eax
test ecx, ecx
je 0x4ef8ee
test byte [esp + 0x80], 2
je 0x4f0e4e
mov dword [esp + 0xac], esi
cmp esi, dword [esp + 0x10]
jb 0x4ef8a3
mov edi, 0x5c
xor ebx, ebx
jmp 0x4ef8fe
cmp dword [esp + 0x48], 0
lea ecx, [esi + 2]
movzx edi, word [esi]
mov esi, ecx
mov dword [esp + 0xac], esi
je 0x4ef8ea
mov eax, edi
and eax, 0xfc00
cmp eax, 0xd800
jne 0x4ef8ea
movzx eax, word [esi]
and edi, 0x3ff
shl edi, 0xa
lea esi, [ecx + 2]
and eax, 0x3ff
mov dword [esp + 0xac], esi
or edi, eax
add edi, 0x10000
xor ebx, ebx
jmp 0x4ef8fe
mov esi, dword [esp + 0xac]
cmp ebx, 0x1a
ja case.default.0x4ef905
mov edi, dword [esp + 0x44]
movzx eax, byte [ebx + 0x4f1040]
jmp dword [eax*4 + 0x4f1028]
mov edi, 8
xor ebx, ebx
mov edx, dword [esp + 0x20]
cmp edx, 1
jne 0x4efaea
cmp edi, dword [ebp - 8]
jne 0x4efab7
mov eax, 0xfffffffc
xor edx, edx
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebp
jmp 0x4ef732
mov edx, dword [esp + 0x20]
mov ebx, 1
mov dword [esp + 0x34], ebx
jmp 0x4ef736
mov edi, dword [esp + 0xb8]
cmp dword [esp + 0x20], 1
je 0x4efaad
xor edx, edx
lea ecx, [ebx - 6]
mov dword [esp + 0x20], edx
cmp ecx, 0xf
ja case.0x4ef97c.13
movzx eax, byte [ecx + 0x4f1070]
jmp dword [eax*4 + 0x4f105c]
lea eax, [ebx - 0x7fe80000]
mov dword [ebp], eax
add ebp, 4
jmp 0x4efa85
test dword [esp + 0x2c], 0x20000
jne 0x4ef9af
lea eax, [ebx - 0x7fe80000]
mov dword [ebp], eax
add ebp, 4
jmp 0x4efa85
cmp ebx, 7
je 0x4ef9c3
cmp ebx, 9
je 0x4ef9c3
mov eax, 0x8018000f
cmp ebx, 0xb
jne 0x4ef9c8
mov eax, 0x80180010
mov dword [ebp], eax
add ebp, 4
mov dword [esp + 0x1c], ebp
cmp ecx, 5
ja case.default.0x4ef9db
jmp dword [ecx*4 + 0x4f1080]
mov dword [ebp], 0x3000d
add ebp, 4
jmp 0x4efa85
mov dword [ebp], 0x60000
add ebp, 4
jmp 0x4efa85
mov dword [ebp], 0x80000
add ebp, 4
jmp 0x4efa85
push edi
lea eax, [esp + 0x2c]
mov dword [esp + 0x28], edx
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x38], edx
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.004edf50
add esp, 0x18
test eax, eax
je 0x4f0dc8
cmp dword [esp + 0x9c], 0
je 0x4efa5c
xor eax, eax
cmp ebx, 0xf
sete al
lea ebx, [eax + 0xf]
movzx ecx, word [esp + 0x24]
lea eax, [ebx - 0x7fe80000]
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x20]
mov dword [ebp], eax
movzx eax, word [esp + 0x30]
shl ecx, 0x10
or ecx, eax
mov dword [ebp + 4], ecx
add ebp, 8
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x10]
add eax, 0xfffffffe
cmp esi, eax
jae 0x4ef732
cmp word [esi], 0x2d
jne 0x4ef732
cmp word [esi + 2], 0x5d
je 0x4ef732
mov ecx, 0x96
jmp 0x4f0f00
jb 0x4f0d6b
test ebx, ebx
jne 0x4efad1
cmp dword [ebp - 4], 0x801f0000
jne 0x4efad1
mov dword [ebp - 4], 0x801e0000
mov eax, 4
mov dword [ebp], edi
xor edx, edx
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebp
jmp 0x4ef732
mov eax, 4
mov dword [ebp], edi
lea edx, [ebx + 2]
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebp
jmp 0x4ef732
cmp esi, ecx
jae 0x4f0efb
movzx eax, word [esi]
cmp eax, 0x3f
je 0x4efeff
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0xb8]
cmp eax, 0x2a
je 0x4efb83
inc ebx
test dword [esp + 0x2c], 0x2000
mov dword [esp + 0x14], ebx
jne 0x4efb67
mov ecx, dword [edi + 0x74]
cmp ecx, 0xffff
jae 0x4f0e61
mov edx, dword [esp + 0x18]
inc ecx
mov dword [edi + 0x74], ecx
or ecx, 0x80080000
mov dword [ebp], ecx
add ebp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
jmp 0x4ee7e0
mov edx, dword [esp + 0x18]
mov ecx, 0x801a0000
mov dword [ebp], ecx
add ebp, 4
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
jmp 0x4ee7e0
mov edx, dword [esp + 0x18]
mov eax, ecx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jle 0x4ee7e0
movzx ecx, word [esi + 2]
mov ebx, dword [esp + 0x14]
cmp ecx, 0x29
je 0x4ee7b2
cmp ecx, 0xff
ja 0x4efd94
mov eax, dword [edi + 0x10]
test byte [ecx + eax], 4
je 0x4efd94
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x4c], 0x8459f8
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push 0
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push ebx
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
je 0x4f0dc8
mov esi, dword [esp + 0xac]
mov dword [esp + 0x30], esi
cmp esi, ebx
jae 0x4f0da0
cmp word [esi], 0x3a
jne 0x4f0da0
mov ebp, dword [esp + 0x44]
xor edi, edi
mov esi, dword [esp + 0x38]
xor ebx, ebx
mov dword [esp + 0x3c], edi
nop
cmp esi, dword [edi*8 + 0x845ad0]
jne 0x4efc4b
push esi
push ebp
push dword [esp + 0x58]
call fcn.0051bc60
add esp, 0xc
test eax, eax
je 0x4efc5f
inc ebp
add ebp, dword [edi*8 + 0x845ad0]
inc edi
mov dword [esp + 0x3c], edi
mov ebx, edi
cmp edi, 0x11
jl 0x4efc30
mov esi, dword [esp + 0x30]
mov ebp, dword [esp + 0x1c]
cmp ebx, 0x11
jge 0x4f0da0
mov edx, dword [edi*8 + 0x845ad4]
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x4efc90
lea eax, [edx + 0x7fdd0000]
cmp eax, 0x30000
ja 0x4f0d82
cmp edx, 0x80250000
ja 0x4efcd2
je 0x4efcfe
cmp edx, 0x80230000
ja 0x4efcbc
je 0x4f05c7
cmp edx, 0x80020000
je case.0x4eff27.62
cmp edx, 0x80220000
jmp 0x4efd0c
cmp edx, 0x80240000
je 0x4f05e1
mov ecx, 0xbd
jmp 0x4f0f00
cmp edx, 0x80280000
ja 0x4efd06
je 0x4efcfe
cmp edx, 0x80260000
je 0x4efcfe
cmp edx, 0x80270000
jne 0x4efcc8
mov dword [ebp], edx
add esi, 2
mov edx, dword [esp + 0xb8]
jmp 0x4f065a
sub esi, 2
jmp 0x4f062c
cmp edx, 0x8fff0000
jne 0x4efcc8
mov ebx, dword [esp + 0x14]
add esi, 2
mov ecx, dword [esp + 0x10]
inc ebx
mov edi, dword [esp + 0xb8]
mov dword [ebp], 0x80220000
add ebp, 4
cmp edx, 0x8fff0000
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], ebx
jne 0x4ee7e0
mov ebx, dword [esp + 0x40]
mov dword [ebp], 0x80020000
add ebp, 4
mov dword [esp + 0x1c], ebp
test ebx, ebx
jne 0x4efd62
mov ebx, dword [edi + 0x14]
mov dword [esp + 0x40], ebx
jmp 0x4efd73
add ebx, 0xc
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x78]
jae 0x4f0e8f
mov eax, dword [esp + 0x14]
mov word [ebx], ax
mov eax, 4
mov word [ebx + 6], ax
mov eax, dword [esp + 0x2c]
and eax, 0x10424e8
mov dword [ebx + 8], eax
jmp 0x4ee7d7
mov ebx, dword [esp + 0x10]
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x40]
mov dword [esp + 0x78], 0x845930
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push 0
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push ebx
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
je 0x4f0dc8
mov esi, dword [esp + 0xac]
mov dword [esp + 0x30], esi
cmp esi, ebx
jae 0x4f0eb2
movzx eax, word [esi]
cmp eax, 0x3a
je 0x4efdf8
cmp eax, 0x29
jne 0x4f0eb2
mov esi, dword [esp + 0x70]
xor edi, edi
mov dword [esp + 0x3c], edi
xor ebp, ebp
mov ebx, 0x845960
nop dword [eax]
mov eax, dword [esp + 0x38]
cmp eax, dword [ebx]
jne 0x4efe2a
push eax
push esi
push dword [esp + 0x58]
call fcn.0051bc60
add esp, 0xc
test eax, eax
je 0x4efe3c
inc esi
inc edi
add esi, dword [ebx]
mov ebp, edi
add ebx, 0xc
mov dword [esp + 0x3c], edi
cmp edi, 9
jl 0x4efe10
mov esi, dword [esp + 0x30]
cmp ebp, 9
mov ebp, dword [esp + 0x1c]
jge 0x4f0eb2
cmp word [esi], 0x3a
jne 0x4efe63
lea eax, [esi + 2]
cmp eax, dword [esp + 0x10]
jae 0x4efe63
cmp word [eax], 0x29
cmove esi, eax
lea ecx, [edi + edi*2]
mov edi, dword [ecx*4 + 0x845968]
test edi, edi
jle 0x4efe7b
cmp word [esi], 0x3a
jne 0x4f0daa
mov ecx, dword [ecx*4 + 0x845964]
lea edx, [ebp + 4]
movzx eax, word [esi]
xor ebx, ebx
cmp ecx, 0x802a0000
mov dword [esp + 0x70], ebp
sete bl
add esi, 2
mov dword [esp + 0x20], ebx
cmp eax, 0x3a
jne 0x4efeed
test edi, edi
jns 0x4efeb2
mov dword [esp + 0x74], ecx
mov eax, 0x80290000
jmp 0x4efec4
xor eax, eax
mov ebx, 0x10000
cmp ecx, 0x80290000
cmovne eax, ebx
add eax, ecx
mov ecx, dword [esp + 0x10]
mov dword [ebp], eax
lea ebp, [edx + 4]
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x68], 1
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
mov dword [ebp], ecx
mov ebp, edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d0
add esi, 2
mov dword [esp + 0xac], esi
cmp esi, ecx
jae 0x4f0efb
movzx ecx, word [esi]
lea eax, [ecx - 0x21]
cmp eax, 0x31
ja case.0x4eff27.34
movzx eax, byte [eax + 0x4f10cc]
jmp dword [eax*4 + 0x4f1098]
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0xac], esi
cmp esi, ecx
jae 0x4f0efb
movzx eax, word [esi]
cmp eax, 0x3c
jne 0x4eff56
mov eax, 0x3e
jmp 0x4f06c9
cmp eax, 0x3e
je 0x4f000a
cmp eax, 0x3d
jne 0x4f0db4
mov edi, dword [esp + 0xb8]
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push 0x29
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push ecx
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
je 0x4f0dc8
mov dword [ebp], 0x80040000
jmp 0x4f004c
mov ecx, dword [esp + 0x10]
xor eax, eax
add esi, 2
mov dword [esp + 0x3c], eax
cmp esi, ecx
jae 0x4f0dbe
cmp word [esi], 0x29
jne 0x4f0dbe
mov edi, dword [esp + 0xb8]
jmp 0x4f0997
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 4
jl 0x4efffc
movzx eax, word [esi + 2]
cmp eax, 0x30
jb 0x4efffc
cmp eax, 0x39
jbe 0x4f0920
mov ecx, 0x81
jmp 0x4f0f00
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xb8]
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push 0x29
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push ecx
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
je 0x4f0dc8
mov dword [ebp], 0x80210000
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x10]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp + 8], eax
add ebp, 0xc
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], 1
jmp 0x4ee7d7
mov ebx, dword [esp + 0x10]
add esi, 2
cmp esi, ebx
jae 0x4f0efb
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
dec eax
mov dword [esp + 0x60], eax
test ecx, ecx
je 0x4f00b1
test byte [esp + 0x2c], 4
je 0x4f00b1
lea eax, [ebp - 0x10]
cmp ecx, eax
jne 0x4f00b1
cmp dword [ebp - 4], 0xff
cmove ebp, ecx
movzx edx, word [esi]
mov eax, ebp
mov dword [esp + 0x18], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], 1
cmp edx, 0x29
je 0x4f0160
cmp edx, 0x30
jb 0x4f00dd
cmp edx, 0x39
jbe 0x4f0160
mov ecx, dword [0x86090c]
xor eax, eax
mov dword [esp + 0x3c], eax
mov edi, esi
test ecx, ecx
je 0x4f0104
nop
cmp edx, ecx
je 0x4f010e
mov ecx, dword [eax*4 + 0x860910]
inc eax
mov dword [esp + 0x3c], eax
test ecx, ecx
jne 0x4f00f0
mov ecx, 0xb6
jmp 0x4f0f00
mov ecx, dword [eax*4 + 0x8608e8]
test ecx, ecx
je 0x4f0104
mov dword [ebp], 0x80070000
add esi, 2
cmp esi, ebx
jae 0x4f0dd8
movzx eax, word [esi]
cmp eax, ecx
jne 0x4f0120
add esi, 2
cmp esi, ebx
jae 0x4f0140
movzx eax, word [esi]
cmp eax, ecx
je 0x4f0120
mov eax, esi
mov ecx, esi
sub eax, edi
sar eax, 1
mov dword [ebp + 0xc], eax
add ebp, 0x10
mov eax, dword [esp + 0xb8]
sub edi, dword [eax + 0x1c]
sar edi, 1
mov dword [esp + 0x4c], edi
jmp 0x4f019f
xor edi, edi
mov dword [ebp], 0x80060000
add ebp, 0xc
mov edx, esi
nop
movzx eax, word [esi]
mov ecx, edx
cmp eax, 0x30
jb 0x4f019f
cmp eax, 0x39
ja 0x4f019f
lea ecx, [edi - 6]
lea ecx, [edi + ecx*4]
lea edi, [eax + ecx*2]
lea esi, [edx + 2]
mov ecx, esi
cmp edi, 0xff
jg 0x4f0de4
mov edx, esi
cmp esi, ebx
jb 0x4f0170
mov dword [ebp], edi
cmp ecx, ebx
jae 0x4f0dee
cmp word [esi], 0x29
jne 0x4f0dee
mov edi, dword [esp + 0xb8]
lea esi, [ecx + 2]
mov edx, dword [esp + 0x18]
mov eax, esi
mov ecx, ebx
sub eax, dword [edi + 0x1c]
sar eax, 1
add ebp, 4
mov dword [edx + 4], eax
mov dword [edx + 8], 0
mov dword [esp + 0x1c], ebp
jmp case.default.0x4ef156
mov ecx, dword [esp + 0x10]
add esi, 2
mov dword [esp + 0xac], esi
cmp esi, ecx
jae 0x4f0efb
mov ebx, dword [esp + 0x14]
movzx eax, word [esi]
inc ebx
mov dword [esp + 0x14], ebx
cmp eax, 0x3f
je 0x4f056c
cmp eax, 0x2a
je 0x4f056c
mov edi, dword [esp + 0xb8]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x40]
push eax
push 0xa1
push 0xffff
push dword [edi + 0x74]
lea eax, [esp + 0xc0]
push ecx
push eax
call fcn.004f25e0
add esp, 0x1c
test eax, eax
je 0x4f027e
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xac]
test ecx, ecx
jle 0x4f0df8
mov dword [ebp], 0x80120000
mov eax, esi
sub eax, dword [edi + 0x1c]
sar eax, 1
sub eax, 2
mov dword [ebp + 4], eax
add ebp, 8
mov dword [esp + 0x4c], eax
mov dword [ebp], ecx
jmp 0x4f0543
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x4f0e4e
mov edx, dword [esp + 0x10]
mov ebx, edx
mov edi, dword [esp + 0xac]
sub ebx, edi
sar ebx, 1
cmp ebx, 0xa
jl 0x4f03d4
push 7
push str.VERSION
push edi
call fcn.0051bc60
add esp, 0xc
test eax, eax
jne 0x4f03d0
cmp word [edi + 0xe], 0x29
lea esi, [edi + 0xe]
je 0x4f03d0
xor ebx, ebx
xor edi, edi
cmp word [esi], 0x3e
mov eax, esi
mov dword [esp + 0x24], ebx
jne 0x4f02e2
add esi, 2
lea ebx, [edi + 1]
mov eax, esi
cmp word [esi], 0x3d
jne 0x4f0e02
lea esi, [eax + 2]
movzx eax, word [esi]
mov dword [esp + 0xac], esi
cmp eax, 0x30
jb 0x4f0e02
cmp eax, 0x39
ja 0x4f0e02
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x28]
push eax
push 0xb3
push 0x3e8
push 0xffffffffffffffff
push dword [esp + 0x24]
lea eax, [esp + 0xc4]
push eax
call fcn.004f25e0
add esp, 0x1c
test eax, eax
je 0x4f0dc8
mov esi, dword [esp + 0xac]
mov edx, dword [esp + 0x10]
cmp esi, edx
jae 0x4f0e02
cmp word [esi], 0x2e
jne 0x4f03ad
add esi, 2
cmp esi, edx
jae 0x4f0e02
movzx eax, word [esi]
cmp eax, 0x30
jb 0x4f0e02
cmp eax, 0x39
ja 0x4f0e02
movzx ecx, word [esi + 2]
sub eax, 0x30
add esi, 2
lea edi, [eax + eax*4]
mov eax, esi
add edi, edi
cmp ecx, 0x30
jb 0x4f039b
cmp ecx, 0x39
ja 0x4f039b
lea eax, [ecx - 0x30]
add edi, eax
lea eax, [esi + 2]
mov esi, eax
cmp eax, edx
jae 0x4f0e02
cmp word [esi], 0x29
jne 0x4f0e02
mov eax, dword [esp + 0x24]
mov dword [ebp], 0x80150000
mov dword [ebp + 4], ebx
mov dword [ebp + 8], eax
add ebp, 0xc
mov dword [ebp], edi
mov edi, dword [esp + 0xb8]
jmp 0x4f053f
mov edx, dword [esp + 0x10]
movzx eax, word [edi]
mov dword [esp + 0x24], 0
cmp eax, 0x52
jne 0x4f03ff
cmp ebx, 1
jle 0x4f03ff
cmp word [edi + 2], 0x26
lea ecx, [edi + 2]
jne 0x4f03ff
lea ebx, [eax - 0x51]
mov dword [esp + 0xac], ecx
jmp 0x4f0420
mov ebx, dword [esp + 0x24]
cmp eax, 0x3c
jne 0x4f040d
lea esi, [eax + 2]
jmp 0x4f0425
cmp eax, 0x27
jne 0x4f0416
mov esi, eax
jmp 0x4f0425
sub edi, 2
mov dword [esp + 0xac], edi
mov esi, 0x29
mov edi, dword [esp + 0xb8]
lea eax, [esp + 0x28]
push edi
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x5c]
push eax
push esi
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push edx
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
je 0x4f0dc8
test ebx, ebx
mov ebx, dword [esp + 0x38]
je 0x4f047d
mov esi, dword [esp + 0xac]
mov dword [ebp], 0x80130000
sub esi, 2
jmp 0x4f0525
cmp esi, 0x29
jne 0x4f0517
mov edi, dword [esp + 0x50]
cmp ebx, 6
jne 0x4f04be
push 6
push str.DEFINE
push edi
call fcn.0051bc60
add esp, 0xc
test eax, eax
jne 0x4f04be
mov edi, dword [esp + 0xb8]
mov eax, 0x80100000
mov dword [ebp], eax
mov esi, dword [esp + 0xac]
sub esi, 2
jmp 0x4f0525
mov eax, 1
mov dword [esp + 0x3c], eax
mov ecx, eax
cmp ebx, eax
jle 0x4f04ed
mov esi, eax
nop
movzx edx, word [edi + eax*2]
mov ecx, esi
cmp edx, 0x30
jb 0x4f04ed
cmp edx, 0x39
ja 0x4f04ed
inc eax
mov dword [esp + 0x3c], eax
mov ecx, eax
mov esi, ecx
cmp eax, ebx
jl 0x4f04d0
cmp word [edi], 0x52
jne 0x4f04fc
mov eax, 0x80140000
cmp ecx, ebx
jge 0x4f0501
mov eax, 0x80110000
mov edi, dword [esp + 0xb8]
mov dword [ebp], eax
mov esi, dword [esp + 0xac]
sub esi, 2
jmp 0x4f0525
mov esi, dword [esp + 0xac]
mov dword [ebp], 0x80110000
mov eax, dword [ebp]
add ebp, 4
cmp eax, 0x80100000
je 0x4f0538
mov dword [ebp], ebx
add ebp, 4
mov eax, dword [esp + 0x4c]
mov dword [ebp], eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
cmp esi, ecx
jae 0x4f0e0c
cmp word [esi], 0x29
jne 0x4f0e0c
mov edx, dword [esp + 0x18]
add esi, 2
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7e0
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
mov dword [ebp], 0x800f0000
add ebp, 4
mov dword [esp + 0x1c], ebp
add esi, 0xfffffffe
mov dword [esp + 0x60], 2
jmp 0x4ee7e0
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
inc ebx
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
mov dword [ebp], 0x80020000
add ebp, 4
mov dword [esp + 0x1c], ebp
add esi, 2
mov dword [esp + 0x14], ebx
jmp 0x4ee7e0
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0xb8]
add esi, 2
mov dword [ebp], 0x80230000
jmp 0x4f065a
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0xb8]
add esi, 2
mov dword [ebp], 0x80240000
jmp 0x4f065a
mov eax, dword [esp + 0x10]
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jle 0x4eff4c
movzx eax, word [esi + 2]
cmp eax, 0x3d
je 0x4f0618
cmp eax, 0x21
jne 0x4eff4c
mov edi, dword [esp + 0x24]
cmp eax, 0x3d
mov edx, 0x80260000
mov eax, 0x80250000
cmove edx, eax
mov eax, dword [esp + 0xb4]
mov dword [ebp], edx
mov edx, dword [esp + 0xb8]
mov dword [eax], 1
mov eax, esi
add esi, 4
sub eax, dword [edx + 0x1c]
sar eax, 1
sub eax, 2
mov dword [ebp + 4], eax
add ebp, 4
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x14]
add ebp, 4
inc ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebx
test edi, edi
jle 0x4f06b0
mov ebx, dword [esp + 0x40]
test ebx, ebx
jne 0x4f067f
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x40], ebx
jmp 0x4f0690
add ebx, 0xc
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x78]
jae 0x4f0e8f
mov eax, dword [esp + 0x14]
mov word [ebx], ax
mov eax, 2
mov word [ebx + 6], ax
mov eax, dword [esp + 0x2c]
and eax, 0x10424e8
mov dword [ebx + 8], eax
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x18]
jmp 0x4ee7e0
mov eax, 0x27
mov edi, dword [esp + 0xb8]
lea ecx, [esp + 0x28]
push edi
push ecx
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x5c]
push ecx
push eax
push dword [esp + 0x60]
lea eax, [esp + 0xc8]
push dword [esp + 0x2c]
push eax
call fcn.004f2390
add esp, 0x24
test eax, eax
je 0x4f0dc8
mov eax, dword [edi + 0x74]
cmp eax, 0xffff
jae 0x4f0e5a
inc dword [esp + 0x14]
inc eax
mov dword [edi + 0x74], eax
or eax, 0x80080000
mov dword [ebp], eax
add ebp, 4
movzx edx, word [edi + 0x58]
mov eax, 0x2710
mov dword [esp + 0x1c], ebp
cmp dx, ax
jae 0x4f0e49
mov ecx, dword [esp + 0x38]
movzx eax, word [edi + 0x5a]
add ecx, 2
cmp ecx, eax
mov ecx, dword [esp + 0x38]
jbe 0x4f0757
lea eax, [ecx + 2]
mov word [edi + 0x5a], ax
mov esi, dword [edi + 0x64]
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x24], 0
xor edi, edi
mov dword [esp + 0x3c], ebx
cmp ax, dx
jae 0x4f07e4
movzx eax, word [esi + 8]
cmp ecx, eax
jne 0x4f07bb
push ecx
push dword [esi]
push dword [esp + 0x58]
call fcn.0051bc20
add esp, 0xc
test eax, eax
jne 0x4f07bb
mov ecx, dword [esp + 0xb8]
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 0x74]
je 0x4f07eb
test byte [esp + 0x2c], 0x40
je 0x4f0e16
mov eax, 1
mov word [esi + 0xa], ax
mov dword [esp + 0x24], eax
mov dword [ecx + 0xbc], eax
jmp 0x4f07ce
mov ecx, dword [esp + 0xb8]
mov eax, dword [esi + 4]
cmp eax, dword [ecx + 0x74]
je 0x4f0e27
movzx eax, word [ecx + 0x58]
inc ebx
mov ecx, dword [esp + 0x38]
add esi, 0xc
mov dword [esp + 0x3c], ebx
mov edi, ebx
cmp ebx, eax
jl 0x4f0771
mov ecx, dword [esp + 0xb8]
movzx eax, word [ecx + 0x58]
mov ecx, eax
cmp edi, ecx
jge 0x4f0805
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x10]
jmp 0x4ee7d0
mov edi, dword [esp + 0xb8]
mov edx, dword [edi + 0x68]
cmp ecx, edx
jb 0x4f0876
mov ebx, dword [esp + 0xb8]
lea edi, [edx + edx]
lea eax, [edi + edi*2]
shl eax, 2
mov ecx, dword [ebx]
push dword [ecx + 8]
push eax
mov eax, dword [ecx]
call eax
mov esi, eax
add esp, 8
test esi, esi
je 0x4f0e38
mov ecx, dword [ebx + 0x68]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [ebx + 0x64]
push esi
call fcn.005229c0
mov ecx, ebx
add esp, 0xc
cmp dword [ecx + 0x68], 0x14
jbe 0x4f086a
mov eax, dword [ecx]
push dword [eax + 8]
mov eax, dword [eax + 4]
push dword [ecx + 0x64]
call eax
add esp, 8
mov ecx, ebx
mov dword [ecx + 0x68], edi
mov edi, ebx
mov dword [ecx + 0x64], esi
movzx eax, word [edi + 0x58]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x38]
movzx eax, ax
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x64]
mov dword [eax + ecx*4], edx
movzx eax, word [edi + 0x58]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x64]
mov word [eax + ecx*4 + 8], si
movzx eax, word [edi + 0x58]
mov ecx, dword [edi + 0x64]
mov esi, dword [esp + 0xac]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x74]
mov dword [ecx + edx*4 + 4], eax
movzx eax, word [edi + 0x58]
mov edx, dword [esp + 0x24]
lea ecx, [eax + eax*2]
mov eax, dword [edi + 0x64]
mov word [eax + ecx*4 + 0xa], dx
inc word [edi + 0x58]
mov ecx, dword [esp + 0x10]
jmp 0x4ee7d7
cmp ecx, 0x2d
jne 0x4f08f4
mov edx, dword [esp + 0x10]
mov eax, edx
sub eax, esi
and eax, 0xfffffffe
cmp eax, 2
jle 0x4f08f4
movzx eax, word [esi + 2]
cmp eax, 0x30
jb 0x4f08f4
cmp eax, 0x39
jbe 0x4f0920
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x40]
inc eax
mov dword [esp + 0x14], eax
test ebx, ebx
jne 0x4f09c4
mov edi, dword [esp + 0xb8]
mov ebx, dword [edi + 0x14]
mov dword [esp + 0x40], ebx
jmp 0x4f09dc
mov edx, dword [esp + 0x10]
cmp ecx, 0x30
jb 0x4f0936
cmp ecx, 0x39
ja 0x4f0936
mov edi, dword [esp + 0xb8]
or eax, 0xffffffff
jmp 0x4f0940
mov edi, dword [esp + 0xb8]
mov eax, dword [edi + 0x74]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x40]
push ecx
push 0xa1
push 0xffff
push eax
push edx
lea eax, [esp + 0xc4]
push eax
call fcn.004f25e0
add esp, 0x1c
test eax, eax
je 0x4f0dc8
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0xac]
test eax, eax
js 0x4f0e6b
mov ecx, dword [esp + 0x10]
cmp esi, ecx
jae 0x4f0efb
cmp word [esi], 0x29
jne 0x4f0efb
or eax, 0x80200000
mov dword [esp + 0x20], 1
mov dword [ebp], eax
mov eax, esi
sub eax, dword [edi + 0x1c]
add esi, 2
sar eax, 1
mov dword [ebp + 4], eax
add ebp, 8
mov dword [esp + 0x4c], eax
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
add ebx, 0xc
mov dword [esp + 0x40], ebx
cmp ebx, dword [esp + 0x78]
jae 0x4f0e8f
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x2c]
mov word [ebx], ax
xor eax, eax
mov word [ebx + 6], ax
mov eax, edx
and eax, 0x10424e8
mov dword [ebx + 8], eax
cmp word [esi], 0x7c
jne 0x4f0a33
movzx eax, word [edi + 0x74]
mov ecx, dword [esp + 0x10]
mov word [ebx + 2], ax
movzx eax, word [edi + 0x74]
mov word [ebx + 4], ax
mov eax, 1
mov word [ebx + 6], ax
or dword [edi + 0x70], 0x200000
mov dword [ebp], 0x801a0000
add ebp, 4
mov dword [esp + 0x1c], ebp
add esi, 2
jmp 0x4ee7d7
xor eax, eax
mov dword [esp + 0xa4], edx
mov dword [ebx + 2], eax
lea edx, [esp + 0x30]
mov eax, dword [esp + 0x10]
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x24], 1
mov dword [esp + 0x44], ebx
mov ecx, esi
mov dword [esp + 0x30], edi
cmp esi, eax
jae 0x4f0a78
cmp word [esi], 0x5e
jne 0x4f0a78
and dword [esp + 0x2c], 0xfeffdb57
add esi, 2
mov dword [esp + 0x24], ebx
mov ecx, esi
cmp ecx, eax
jae 0x4f0b44
mov edi, ecx
movzx eax, word [esi]
mov ecx, edi
cmp eax, 0x29
je 0x4f0b3c
cmp eax, 0x3a
je 0x4f0b3c
sub eax, 0x2d
lea esi, [edi + 2]
cmp eax, 0x4b
ja case.0x4f0aaf.46
movzx eax, byte [eax + 0x4f1124]
jmp dword [eax*4 + 0x4f1100]
cmp dword [esp + 0x24], ebx
je 0x4f0e78
lea edx, [esp + 0x44]
mov dword [esp + 0x24], ebx
mov ecx, esi
jmp 0x4f0b30
mov eax, dword [esp + 0xb8]
mov ecx, esi
or dword [edx], 0x40
or dword [eax + 0x70], 0x400
jmp 0x4f0b30
or dword [edx], 8
mov ecx, esi
jmp 0x4f0b30
or dword [edx], 0x400
mov ecx, esi
jmp 0x4f0b30
or dword [edx], 0x2000
mov ecx, esi
jmp 0x4f0b30
or dword [edx], 0x20
mov ecx, esi
jmp 0x4f0b30
or dword [edx], 0x40000
mov ecx, esi
jmp 0x4f0b30
mov eax, dword [edx]
mov ecx, esi
or eax, 0x80
mov dword [edx], eax
cmp esi, dword [esp + 0x10]
jae 0x4f0b30
cmp word [esi], 0x78
jne 0x4f0b30
or eax, 0x1000000
lea ecx, [esi + 2]
mov dword [edx], eax
mov esi, ecx
mov edi, ecx
cmp esi, dword [esp + 0x10]
jb 0x4f0a82
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x44]
mov eax, edi
and eax, 0x1000080
cmp eax, 0x80
je 0x4f0b56
test bl, bl
jns 0x4f0b5c
or ebx, 0x1000000
or edi, dword [esp + 0x2c]
not ebx
and edi, ebx
mov edx, edi
mov dword [esp + 0x2c], edx
cmp ecx, dword [esp + 0x10]
jae 0x4f0efb
mov ax, word [esi]
lea esi, [ecx + 2]
mov edi, dword [esp + 0xb8]
cmp ax, 0x29
jne 0x4f0bb2
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x40]
movzx ecx, ax
mov dword [esp + 0x14], ecx
cmp ebx, dword [edi + 0x14]
jbe 0x4f0bad
cmp word [ebx - 0xc], cx
lea eax, [ebx - 0xc]
jne 0x4f0bad
mov dword [esp + 0x40], eax
jmp 0x4f0bc0
mov word [ebx], cx
jmp 0x4f0bc0
mov dword [ebp], 0x801a0000
add ebp, 4
mov dword [esp + 0x1c], ebp
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp edx, dword [esp + 0xa4]
je 0x4f06bb
mov dword [ebp], 0x801b0000
mov dword [ebp + 4], edx
add ebp, 8
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0xb8]
test ebx, ebx
je 0x4f0c1f
mov eax, dword [esp + 0x14]
cmp word [ebx], ax
jne 0x4f0c1f
test byte [ebx + 6], 1
je 0x4f0c1f
movzx eax, word [ebx + 4]
mov ecx, dword [edi + 0x74]
cmp ecx, eax
jbe 0x4f0c18
mov word [ebx + 4], cx
movzx eax, word [ebx + 2]
mov dword [edi + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [ebp], 0x80010000
add ebp, 4
mov dword [esp + 0x1c], ebp
jmp 0x4ee7d7
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x20], 1
test ebx, ebx
je 0x4f0cba
mov eax, dword [esp + 0x14]
cmp word [ebx], ax
jne 0x4f0cba
mov eax, dword [esp + 0x2c]
movzx ecx, word [ebx + 6]
and eax, 0xfefbdb17
or eax, dword [ebx + 8]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x2c], eax
mov eax, ecx
test cl, 1
je 0x4f0c81
movzx edx, word [ebx + 4]
cmp edx, dword [edi + 0x74]
jbe 0x4f0c81
mov dword [edi + 0x74], edx
movzx eax, word [ebx + 6]
mov ebx, eax
not ebx
shr ebx, 1
and ebx, 1
mov dword [esp + 0x20], ebx
test al, 4
je 0x4f0c9c
mov dword [ebp], 0x80190000
add ebp, 4
mov eax, dword [esp + 0x40]
cmp eax, dword [edi + 0x14]
jne 0x4f0cad
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x4f0cc1
sub eax, 0xc
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], eax
jmp 0x4f0cc1
mov edi, dword [esp + 0xb8]
mov ebx, dword [esp + 0x14]
test bx, bx
je 0x4f0e96
mov ecx, dword [esp + 0x10]
add ebx, 0xffff
mov edx, dword [esp + 0x18]
mov dword [ebp], 0x80190000
add ebp, 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x1c], ebp
jmp 0x4ee7e0
mov dword [ebp], edi
jmp 0x4ee7c1
mov ecx, 0x8c
jmp 0x4f0f00
mov esi, dword [esp + 0x30]
mov ecx, 0xb0
add esi, 0xfffffffe
jmp 0x4f0f00
mov ecx, 0x76
jmp 0x4f0f00
mov ecx, 0x6d
sub esi, 2
jmp 0x4f0f00
movzx eax, word [esi]
xor ecx, ecx
mov esi, dword [esp + 0x30]
add esi, 0xfffffffe
cmp eax, 0x3a
setne cl
add ecx, 0x70
jmp 0x4f0f00
mov ecx, 0x71
sub esi, 2
jmp 0x4f0f00
mov ecx, 0x6b
sub esi, 2
jmp 0x4f0f00
mov ecx, 0xab
jmp 0x4f0f00
mov ecx, 0x6c
sub esi, 2
jmp 0x4f0f00
mov ecx, 0x6a
jmp 0x4f0f00
cmp edx, 0x80270000
je 0x4f0d96
cmp edx, 0x80280000
jne 0x4eed8b
mov ecx, 0xc6
jmp 0x4f0f00
mov ecx, 0xc3
jmp 0x4f0f00
mov ecx, 0xa6
jmp 0x4f0f00
mov ecx, 0x8d
jmp 0x4f0f00
mov ecx, 0x9e
jmp 0x4f0f00
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0x28]
jmp 0x4f0f00
mov ecx, 0xb5
mov esi, edi
jmp 0x4f0f00
mov ecx, 0x8a
jmp 0x4f0f00
mov ecx, 0x8b
jmp 0x4f0f00
mov ecx, 0x73
jmp 0x4f0f00
mov ecx, 0xb3
jmp 0x4f0f00
mov ecx, 0x7c
jmp 0x4f0f00
mov esi, dword [esp + 0xac]
mov ecx, 0x8f
jmp 0x4f0f00
mov esi, dword [esp + 0xac]
mov ecx, 0xa5
jmp 0x4f0f00
mov esi, dword [esp + 0xac]
mov ecx, 0x79
jmp 0x4f0f00
mov ecx, 0x95
mov esi, dword [esp + 0xac]
jmp 0x4f0f00
mov esi, dword [esp + 0xac]
mov ecx, 0xc5
jmp 0x4f0f00
mov ecx, 0x73
sub esi, 2
jmp 0x4f0f00
mov ecx, 0xc2
add esi, 0xfffffffe
jmp 0x4f0f00
mov ecx, 0x6f
add esi, 0xfffffffe
jmp 0x4f0f00
mov ecx, 0xb8
jmp 0x4f0f00
mov ecx, 0x7a
sub esi, 2
jmp 0x4f0f00
mov ecx, 0x77
jmp 0x4f0f00
cmp dword [esp + 0x68], 0
je 0x4ee6fb
mov ecx, 0xa0
jmp 0x4f0f00
test byte [esp + 0x80], 4
je 0x4f0ed3
mov dword [ecx], 0x80190000
mov dword [ecx + 4], 0x80180005
add ecx, 8
cmp ecx, dword [esp + 0x84]
jb 0x4f0ee3
mov ecx, 0xa3
jmp 0x4f0f00
mov dword [ecx], 0x80000000
test bx, bx
jne 0x4f0efb
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x98
ret
mov ecx, 0x72
mov eax, dword [esp + 0xb8]
pop edi
sub esi, dword [eax + 0x1c]
sar esi, 1
mov dword [eax + 0x54], esi
mov eax, ecx
pop esi
pop ebp
pop ebx
add esp, 0x98
ret