Function at 0x499459
Capabilities:
Parse credit card information
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x13c
mov ecx, dword [ebp + 8]
xor edx, edx
push ebx
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0xe0], edx
mov ecx, dword [ecx]
mov eax, ecx
shr eax, 0xb
mov ebx, dword [ebx]
and eax, 1
mov dword [esp + 0x44], eax
mov eax, ecx
shr eax, 9
mov dword [esp + 0xa4], edx
and eax, 1
mov edx, dword [ebp + 0xc]
push esi
xor esi, esi
mov dword [esp + 0x100], eax
push edi
mov edx, dword [edx]
xor edi, edi
xor eax, 1
mov dword [esp + 0x40], ecx
and ecx, 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0xe4], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0x38], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x108], eax
mov dword [esp + 0x64], esi
mov dword [esp + 0x8c], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x7c], esi
mov dword [esp + 0x68], 0xfffffffe
mov dword [esp + 0x78], 0xfffffffe
mov dword [esp + 0x5c], 0xfffffffe
mov dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xa4], 0x7fffffeb
jmp 0x498f18
mov edi, dword [esp + 0x24]
mov edx, dword [esp + 0x10]
movzx eax, byte [ebx]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x498f38
test edi, edi
je 0x498f38
mov ebx, edi
mov dword [esp + 0x24], eax
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x14], eax
mov edi, dword [ebp + 0x30]
mov ecx, dword [edi + 0x10]
add ecx, dword [edi + 0x3c]
cmp dword [ebp + 0x34], 0
je 0x498ffa
lea eax, [ecx - 0x64]
cmp edx, eax
ja 0x49d049
mov eax, dword [esp + 0xbc]
cmp edx, eax
jae 0x498f67
mov dword [esp + 0x10], eax
jmp 0x498f6b
mov eax, dword [esp + 0x10]
mov ecx, dword [ebp + 0x34]
mov edx, dword [ecx]
mov ecx, eax
mov eax, dword [esp + 0xa4]
sub ecx, dword [esp + 0xbc]
sub eax, edx
cmp eax, ecx
jl 0x49d113
mov ecx, dword [ebp + 0x34]
sub edx, dword [esp + 0xbc]
mov eax, dword [esp + 0x10]
add edx, eax
mov dword [ecx], edx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x498fe6
mov edx, dword [esp + 0xe4]
cmp ecx, edx
jbe 0x498ff1
mov ebx, eax
sub eax, ecx
push eax
push ecx
push edx
call fcn.004adc20
mov edx, dword [esp + 0xf0]
add esp, 0xc
mov eax, edx
sub eax, dword [esp + 0x38]
add ebx, eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xbc], eax
jmp 0x499003
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x10], eax
mov dword [esp + 0xbc], eax
jmp 0x499003
cmp dword [edi + 0x20], ecx
ja 0x49d483
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4990e8
cmp edx, 0x5c
jne 0x499033
cmp byte [ebx + 1], 0x45
jne 0x499033
mov edx, dword [esp + 0x10]
xor esi, esi
mov edi, dword [esp + 0x24]
inc ebx
inc ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], ebx
jmp 0x498f18
test esi, esi
je 0x4990c1
mov esi, dword [esp + 0xa8]
test esi, esi
je 0x499078
cmp dword [ebp + 0x34], 0
jne 0x49906d
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
sub ebx, ecx
sub ebx, dword [edi + 0x18]
mov eax, ebx
mov byte [esi + 5], bl
sar eax, 8
mov byte [esi + 4], al
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xa8], 0
test dword [esp + 0x40], 0x4000
je 0x49cdad
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0xa8], ecx
mov byte [eax], 0x76
mov eax, ebx
mov byte [ecx + 1], 0xff
sub eax, dword [edi + 0x18]
sar eax, 8
mov byte [ecx + 2], al
sub bl, byte [edi + 0x18]
mov byte [ecx + 3], bl
mov word [ecx + 4], 0
add ecx, 6
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
jmp 0x49cdb1
cmp edx, 0x5c
jne 0x4990e8
cmp byte [ebx + 1], 0x51
jne 0x4990e8
mov edx, dword [esp + 0x10]
inc ebx
mov edi, dword [esp + 0x24]
mov esi, 1
inc ebx
mov dword [esp + 0x20], esi
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov edi, dword [esp + 0x40]
and edi, 8
mov dword [esp + 0x60], edi
je 0x4991e9
mov eax, dword [ebp + 0x30]
mov edi, ebx
mov ecx, edi
mov eax, dword [eax + 0xc]
test byte [eax + edx], 1
je 0x499124
lea esp, [esp]
inc ebx
mov dword [esp + 0xc], ebx
mov ecx, ebx
movzx edx, byte [ebx]
mov dword [esp + 0x14], edx
test byte [eax + edx], 1
jne 0x499110
cmp edx, 0x23
jne 0x4991d9
lea ebx, [ecx + 1]
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0
je 0x4991d9
mov edx, dword [ebp + 0x30]
mov ecx, dword [edx + 0x84]
lea esi, [edx + 0x88]
mov eax, dword [edx + 0x1c]
test ecx, ecx
je 0x499181
cmp ebx, eax
jae 0x499176
push dword [esp + 0x4c]
push esi
push eax
push ecx
push ebx
call fcn.0050a440
mov ebx, dword [esp + 0x20]
add esp, 0x14
test eax, eax
je 0x499176
mov eax, 1
jmp 0x499178
xor eax, eax
test eax, eax
jne 0x4991cf
mov edx, dword [ebp + 0x30]
jmp 0x4991a3
mov ecx, dword [esi]
sub eax, ecx
cmp ebx, eax
ja 0x4991a3
mov al, byte [ebx]
cmp al, byte [edx + 0x8c]
jne 0x4991a3
cmp ecx, 1
je 0x4991cf
mov al, byte [ebx + 1]
cmp al, byte [edx + 0x8d]
je 0x4991cf
inc ebx
cmp dword [esp + 0x4c], 0
mov dword [esp + 0xc], ebx
je 0x4991c4
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x4991c4
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
je 0x4991b7
cmp byte [ebx], 0
jne 0x499140
jmp 0x4991d5
add ebx, dword [esi]
mov dword [esp + 0xc], ebx
mov esi, dword [esp + 0x20]
cmp ebx, edi
ja 0x498f10
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x60]
cmp edx, 0x28
jne 0x499244
cmp byte [ebx + 1], 0x3f
jne 0x49926c
cmp byte [ebx + 2], 0x23
jne 0x49926c
add ebx, 3
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
test al, al
je 0x499216
cmp al, 0x29
je 0x49922d
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
test al, al
jne 0x499207
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x12
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx], 0
je 0x499216
mov edx, dword [esp + 0x10]
inc ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
jmp 0x498f18
cmp edx, 0x2a
je 0x4992ca
cmp edx, 0x2b
je 0x4992ca
cmp edx, 0x3f
je 0x4992ca
cmp edx, 0x7b
jne 0x49926c
lea eax, [ebx + 1]
push eax
call fcn.00495ab0
add esp, 4
test eax, eax
jne 0x4992ca
mov esi, dword [esp + 0xa8]
xor edx, edx
mov eax, dword [esp + 0x24]
test esi, esi
je 0x4992d3
test eax, eax
jne 0x4992d3
mov ecx, dword [esp + 0xe8]
mov eax, ecx
dec ecx
mov dword [esp + 0xe8], ecx
test eax, eax
jg 0x4992cf
cmp dword [ebp + 0x34], edx
jne 0x4992bf
movzx ecx, byte [esi + 2]
movzx eax, byte [esi + 3]
shl ecx, 8
or ecx, eax
mov eax, dword [ebp + 0x30]
sub ebx, ecx
sub ebx, dword [eax + 0x18]
mov eax, ebx
mov byte [esi + 5], bl
sar eax, 8
mov byte [esi + 4], al
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xa8], edx
xor edx, edx
jmp 0x4992cf
mov edx, 1
mov eax, dword [esp + 0x24]
test dword [esp + 0x40], 0x4000
je 0x49931e
test edx, edx
jne 0x49931e
mov esi, dword [ebp + 0x30]
test eax, eax
jne 0x499321
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0xa8], ecx
mov byte [eax], 0x76
mov eax, ebx
mov byte [ecx + 1], 0xff
sub eax, dword [esi + 0x18]
sar eax, 8
mov byte [ecx + 2], al
sub bl, byte [esi + 0x18]
mov byte [ecx + 3], bl
mov word [ecx + 4], dx
add ecx, 6
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], ecx
jmp 0x499325
mov esi, dword [ebp + 0x30]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
cmp eax, 0x7c
ja case.0x499339.1
movzx eax, byte [eax + 0x49d4d0]
jmp dword [eax*4 + 0x49d49c]
test byte [esp + 0x40], 2
mov dword [esp + 0x38], 0
je 0x499388
cmp dword [esp + 0x44], 0xfffffffe
jne 0x499366
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov byte [ecx], 0x1c
inc ecx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
inc ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov byte [ecx], 0x1b
inc ecx
mov ebx, dword [esp + 0xc]
mov edx, ecx
inc ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
jmp 0x498f18
test byte [esp + 0x40], 2
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
setne al
add al, 0x19
mov dword [esp + 0x38], 0
mov byte [ecx], al
inc ecx
mov ebx, dword [esp + 0xc]
mov edx, ecx
inc ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov eax, dword [esp + 0x44]
cmp eax, 0xfffffffe
jne 0x4993e9
or eax, 0xffffffff
mov dword [esp + 0x44], eax
mov edi, dword [esi + 0x20]
sub edi, dword [esi + 0x10]
mov edx, dword [esp + 0x7c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
shr eax, 2
and al, 1
mov dword [esp + 0x38], ecx
or al, 0xc
mov dword [esp + 0x8c], edx
mov byte [ecx], al
inc ecx
mov ebx, dword [esp + 0xc]
mov edx, ecx
inc ebx
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov edi, dword [ebp + 0x30]
test dword [edi + 0x60], 0x2000000
jne 0x49d066
mov edx, dword [esp + 0x14]
jmp 0x49cdb1
push 6
lea eax, [ebx + 1]
push str._:_:__
push eax
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49948d
mov edi, dword [esp + 0xc]
mov ebx, str._b__w_
mov esi, dword [esp + 0x20]
add edi, 7
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], ebx
jmp 0x498f14
mov eax, dword [esp + 0xc]
push 6
inc eax
push 0x57c0dc
push eax
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x4994c3
mov edi, dword [esp + 0xc]
mov ebx, str._b___w_
mov esi, dword [esp + 0x20]
add edi, 7
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], ebx
jmp 0x498f14
mov edi, dword [ebp + 0x30]
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x38], esi
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov dword [esp + 0x58], eax
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x4994eb
cmp al, 0x2e
je 0x4994eb
cmp al, 0x3d
jne 0x499508
lea eax, [esp + 0x88]
push eax
push ebx
call fcn.004985a0
mov ebx, dword [esp + 0x14]
add esp, 8
test eax, eax
jne 0x49d0ec
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov edi, edi
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x34], eax
cmp eax, 0x5c
jne 0x49954e
cmp byte [ebx + 1], 0x45
lea eax, [ebx + 1]
jne 0x49952d
inc ebx
jmp 0x499510
push 3
push 0x57c664
push eax
call fcn.0050a3c0
mov ebx, dword [esp + 0x18]
add esp, 0xc
test eax, eax
jne 0x499564
mov ecx, dword [esp + 0x1c]
add ebx, 3
jmp 0x499510
test ecx, ecx
jne 0x49962d
cmp eax, 0x5e
jne 0x49962d
lea ecx, [eax - 0x5d]
jmp 0x49950a
mov eax, dword [esp + 0x34]
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x30], ecx
xor edi, edi
mov dword [esp + 0x48], ecx
lea ecx, [esi + 4]
xor esi, esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x18], esi
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], edx
mov dword [esp + 0xd0], edx
mov dword [esp + 0xd4], edx
mov dword [esp + 0xd8], edx
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], edx
test eax, eax
je 0x49a1bf
nop
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x90], edi
mov edi, esi
mov dword [esp + 0x60], esi
je 0x499759
cmp eax, 0xc0
jb 0x499759
movzx eax, byte [ebx]
mov dword [esp + 0x34], eax
cmp eax, 0xc0
jb 0x499759
test al, 0x20
jne 0x49968d
mov edx, dword [esp + 0x34]
inc ebx
and edx, 0x1f
shl edx, 6
movzx eax, byte [ebx]
and eax, 0x3f
mov dword [esp + 0xc], ebx
or edx, eax
mov dword [esp + 0x34], edx
jmp 0x49975d
cmp eax, 0x5d
jne 0x499568
test dword [edi + 0x60], 0x2000000
je 0x499568
mov edx, dword [esp + 0x10]
neg ecx
sbb cl, cl
and cl, 0x70
add cl, 0x9d
mov byte [edx], cl
inc edx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x10], edx
cmp ecx, 0xfffffffe
jne 0x499668
or ecx, 0xffffffff
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
inc ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xc], ebx
jmp 0x498f18
movzx ecx, byte [ebx + 1]
and ecx, 0x3f
test al, 0x10
jne 0x4996b4
and eax, 0xf
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 2
jmp 0x49974d
test al, 8
jne 0x4996dd
and eax, 7
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 3
jmp 0x49974d
test al, 4
jne 0x499712
and eax, 3
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 4
jmp 0x49974d
and eax, 1
shl eax, 6
or ecx, eax
movzx eax, byte [ebx + 2]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 3]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 4]
shl ecx, 6
and eax, 0x3f
or ecx, eax
movzx eax, byte [ebx + 5]
shl ecx, 6
and eax, 0x3f
or ecx, eax
add ebx, 5
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0xc], ebx
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x28], ecx
jbe 0x49976b
mov dword [esp + 0x48], 1
cmp dword [ebp + 0x34], 0
je 0x499788
mov eax, dword [esp + 0x28]
cmp eax, ecx
jbe 0x499788
mov edx, dword [ebp + 0x34]
sub eax, ecx
mov dword [esp + 0x28], ecx
add dword [edx], eax
mov edx, dword [esp + 0x34]
cmp dword [esp + 0x20], 0
je 0x4997b4
cmp edx, 0x5c
jne 0x499ae9
cmp byte [ebx + 1], 0x45
jne 0x499ae9
mov edi, dword [esp + 0x2c]
inc ebx
mov dword [esp + 0x20], 0
jmp 0x49a18d
cmp edx, 0x5b
jne 0x499a9f
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x4997d0
cmp al, 0x2e
je 0x4997d0
cmp al, 0x3d
jne 0x499ae9
lea eax, [esp + 0x88]
push eax
push ebx
call fcn.004985a0
mov ebx, dword [esp + 0x14]
add esp, 8
test eax, eax
je 0x499ae9
cmp byte [ebx + 1], 0x3a
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 8]
mov dword [esp + 0x60], eax
jne 0x49d07d
lea ecx, [ebx + 2]
mov dword [esp + 0xc], ecx
mov al, byte [ecx]
mov dword [esp + 0x64], ecx
mov byte [esp + 0x3f], al
cmp al, 0x5e
jne 0x499827
inc ecx
mov dword [esp + 0x30], 1
mov dword [esp + 0x64], ecx
mov dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x88]
mov edi, 0x553f88
sub ebx, ecx
xor esi, esi
jmp 0x499840
movzx eax, byte [esi + 0x553f6c]
cmp ebx, eax
jne 0x49985e
push ebx
push edi
push ecx
call fcn.0050a3c0
add esp, 0xc
test eax, eax
je 0x49988d
mov ecx, dword [esp + 0x64]
movzx eax, byte [esi + 0x553f6c]
inc edi
inc esi
add edi, eax
cmp byte [esi + 0x553f6c], 0
jne 0x499840
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1e
mov eax, dword [ebp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
js 0x499872
mov ecx, dword [esp + 0x40]
test cl, 1
je 0x4998a5
xor eax, eax
cmp esi, 2
setle al
dec eax
and esi, eax
test ecx, 0x20000000
je 0x499955
mov cl, byte [esp + 0x3f]
xor eax, eax
cmp cl, 0x5e
setne al
dec eax
and eax, 0xe
add eax, esi
mov ebx, dword [eax*4 + 0xd91288]
test ebx, ebx
je 0x4998e8
mov edx, dword [esp + 0x88]
mov esi, dword [esp + 0x14]
inc edx
mov edi, dword [esp + 0x2c]
dec ebx
mov dword [esp + 0x24], edx
jmp 0x49a18d
mov eax, esi
sub eax, 8
je 0x4999b8
sub eax, 1
je 0x4999b1
sub eax, 1
je 0x4999aa
cmp cl, 0x5e
jne 0x499955
cmp dword [esp + 0x48], 0
jne 0x49991e
mov eax, dword [esp + 0x88]
cmp byte [eax + 2], 0x5d
je 0x499955
mov eax, dword [esp + 0x28]
mov byte [eax], 2
mov eax, dword [esp + 0x28]
inc eax
push eax
push 0x100
mov dword [esp + 0x30], eax
call fcn.0050a770
mov ecx, dword [esp + 0x30]
add ecx, eax
push ecx
push 0x10ffff
mov dword [esp + 0x38], ecx
call fcn.0050a770
add esp, 0x10
add dword [esp + 0x28], eax
mov ebx, dword [esp + 0x60]
lea eax, [esi + esi*2]
mov esi, dword [eax*4 + 0x553fe0]
lea edi, [esp + 0x128]
mov edx, dword [eax*4 + 0x553fe4]
add esi, ebx
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov esi, dword [eax*4 + 0x553fe8]
test edx, edx
js 0x499a24
xor ecx, ecx
add edx, ebx
test esi, esi
js 0x499a10
mov al, byte [edx + ecx]
or byte [esp + ecx + 0x128], al
inc ecx
cmp ecx, 0x20
jb 0x499995
jmp 0x499a2a
mov edx, 0xd
jmp 0x4999bd
mov edx, 0xc
jmp 0x4999bd
mov edx, 0xb
mov eax, dword [esp + 0x28]
cmp cl, 0x5e
mov ebx, dword [esp + 0x88]
mov esi, dword [esp + 0x14]
sete cl
mov edi, dword [esp + 0x2c]
add cl, 3
mov byte [eax], cl
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
mov byte [eax], dl
mov edx, 1
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x28], eax
mov byte [eax], 0
inc dword [esp + 0x28]
inc ebx
jmp 0x49a191
mov al, byte [edx + ecx]
not al
and byte [esp + ecx + 0x128], al
inc ecx
cmp ecx, 0x20
jb 0x499a10
jmp 0x499a28
test esi, esi
jns 0x499a2a
neg esi
cmp esi, 1
jne 0x499a39
and byte [esp + 0x129], 0xc3
jmp 0x499a46
cmp esi, 2
jne 0x499a46
and byte [esp + 0x133], 0x7f
xor ecx, ecx
cmp byte [esp + 0x3f], 0x5e
jne 0x499a70
nop
mov al, byte [esp + ecx + 0x128]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x499a50
jmp 0x499a84
mov al, byte [esp + ecx + 0x128]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x499a70
mov ebx, dword [esp + 0x88]
mov edi, 2
inc ebx
mov dword [esp + 0x2c], edi
mov esi, 1
jmp 0x49a189
cmp edx, 0x5c
jne 0x499ae9
mov ebx, dword [ebp + 0x30]
lea eax, [esp + 0xec]
push 1
push dword [esp + 0x44]
push dword [ebx + 0x40]
push dword [ebp + 0x14]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00495b30
mov ecx, dword [ebp + 0x14]
add esp, 0x18
mov esi, eax
cmp dword [ecx], 0
jne 0x49987b
test esi, esi
jne 0x499b2c
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x34], edx
cmp byte [ebx + 1], 0x5c
jne 0x499b0d
nop
cmp byte [ebx + 2], 0x45
lea eax, [ebx + 2]
jne 0x499b0d
mov ebx, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0xc], ebx
cmp byte [eax + 1], 0x5c
je 0x499af0
mov ecx, ebx
cmp edx, 0xd
je 0x499b1d
cmp edx, 0xa
jne 0x499e67
mov edi, dword [ebp + 0x30]
or dword [edi + 0x64], 0x800
jmp 0x499e6a
cmp esi, 5
jne 0x499b36
lea edx, [esi + 3]
jmp 0x499ae1
cmp esi, 0xc
je 0x49d0a8
cmp esi, 0x1a
jne 0x499b79
mov ebx, dword [esp + 0xc]
cmp byte [ebx + 1], 0x5c
jne 0x499b64
cmp byte [ebx + 2], 0x45
jne 0x499b64
mov esi, dword [esp + 0x14]
add ebx, 2
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], 1
jmp 0x49a18d
cmp esi, 0x19
je 0x499bd2
inc dword [esp + 0x14]
lea eax, [esi - 6]
add dword [esp + 0x2c], 2
mov edx, dword [ebx + 8]
cmp eax, 0x1c
ja case.0x499b9d.12
movzx eax, byte [eax + 0x49d584]
jmp dword [eax*4 + 0x49d550]
mov ebx, dword [esi*4 + 0xd911fc]
mov esi, edi
mov edx, dword [esp + 0xc]
dec ebx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x24], edx
jmp 0x49a189
xor ecx, ecx
mov al, byte [edx + ecx + 0x40]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x499bc1
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
mov dword [esp + 0x30], 1
xor ecx, ecx
lea ecx, [ecx]
mov al, byte [edx + ecx + 0x40]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x499bf0
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
xor ecx, ecx
jmp 0x499c20
mov al, byte [edx + ecx + 0xa0]
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x499c20
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
mov dword [esp + 0x30], 1
xor ecx, ecx
nop
mov al, byte [edx + ecx + 0xa0]
not al
or byte [esp + ecx + 0xc4], al
inc ecx
cmp ecx, 0x20
jb 0x499c50
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
lea eax, [esp + 0xc4]
xor esi, esi
sub edx, eax
lea ecx, [esp + 0xc4]
add ecx, esi
inc esi
mov al, byte [edx + ecx]
or byte [ecx], al
cmp esi, 0x20
jb 0x499c82
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
lea eax, [esp + 0xc4]
mov dword [esp + 0x30], 1
xor esi, esi
sub edx, eax
lea ebx, [ebx]
lea ecx, [esp + 0xc4]
add ecx, esi
inc esi
mov al, byte [edx + ecx]
not al
or byte [ecx], al
cmp esi, 0x20
jb 0x499cc0
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
push 0xffffffffffffffff
push 0x55c4e0
push ebx
push dword [esp + 0x4c]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.004954f0
mov ebx, dword [esp + 0x24]
add esp, 0x18
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
push 0x55c4e0
push ebx
push dword [esp + 0x48]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00498ad0
mov ebx, dword [esp + 0x20]
add esp, 0x14
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
push 0xffffffffffffffff
push 0x55c530
push ebx
push dword [esp + 0x4c]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.004954f0
mov ebx, dword [esp + 0x24]
add esp, 0x18
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
push 0x55c530
push ebx
push dword [esp + 0x48]
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00498ad0
mov ebx, dword [esp + 0x20]
add esp, 0x14
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
jmp 0x49a18d
push ecx
lea eax, [esp + 0xfc]
mov dword [esp + 0xf8], 0
push eax
lea eax, [esp + 0xfc]
mov dword [esp + 0x100], 0
push eax
lea eax, [esp + 0x12c]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00496350
add esp, 0x14
test eax, eax
je 0x49987b
xor eax, eax
mov edx, 1
cmp esi, 0x10
mov dword [esp + 0x18], edx
mov esi, edi
mov edi, dword [esp + 0x2c]
sete al
mov dword [esp + 0x14], esi
cmp eax, dword [esp + 0x120]
mov eax, dword [esp + 0x28]
sete cl
add cl, 3
mov byte [eax], cl
mov ecx, dword [esp + 0x28]
movzx eax, byte [esp + 0xf4]
inc ecx
mov dword [esp + 0x28], ecx
mov byte [ecx], al
mov ecx, dword [esp + 0x28]
movzx eax, byte [esp + 0xf8]
inc ecx
mov dword [esp + 0x28], ecx
mov byte [ecx], al
inc dword [esp + 0x28]
mov ebx, dword [esp + 0xc]
jmp 0x49a191
test byte [esp + 0x40], 0x40
mov ebx, dword [esp + 0xc]
jne 0x49d094
movzx edx, byte [ebx]
jmp 0x499ae5
mov edi, dword [ebp + 0x30]
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x49a12b
cmp byte [ecx + 1], 0x2d
jne 0x49a12b
lea ebx, [ecx + 2]
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0x5c
jne 0x499edf
lea esp, [esp]
cmp byte [ebx + 1], 0x45
jne 0x499ea4
add ebx, 2
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0x5c
je 0x499e90
jmp 0x499edf
cmp byte [ebx], 0x5c
jne 0x499edf
lea esp, [esp]
cmp byte [ebx + 1], 0x51
jne 0x499edf
add ebx, 2
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0x5c
jne 0x499ed6
cmp byte [ebx + 1], 0x45
jne 0x499ed6
add ebx, 2
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0x5c
je 0x499eb0
jmp 0x499edf
mov esi, 1
mov dword [esp + 0x20], esi
mov al, byte [ebx]
test al, al
je 0x49a125
test esi, esi
jne 0x499ef5
cmp al, 0x5d
je 0x49a125
cmp dword [esp + 0x4c], 0
movzx eax, al
mov dword [esp + 0x64], eax
mov ecx, eax
mov dword [esp + 0xa0], eax
je 0x49a045
cmp eax, 0xc0
jb 0x49a045
test al, 0x20
jne 0x499f48
and eax, 0x1f
inc ebx
shl eax, 6
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x64]
movzx eax, byte [ebx]
and eax, 0x3f
mov dword [esp + 0xc], ebx
or esi, eax
mov dword [esp + 0xa0], esi
mov ecx, esi
jmp 0x49a049
movzx esi, byte [ebx + 1]
mov edx, dword [esp + 0x34]
and esi, 0x3f
test al, 0x10
jne 0x499f80
and eax, 0xf
shl eax, 6
or esi, eax
movzx eax, byte [ebx + 2]
shl esi, 6
and eax, 0x3f
or esi, eax
add ebx, 2
mov dword [esp + 0xa0], esi
mov ecx, esi
mov dword [esp + 0xc], ebx
jmp 0x49a049
test al, 8
jne 0x499fb9
and eax, 7
shl eax, 6
or esi, eax
movzx eax, byte [ebx + 2]
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, byte [ebx + 3]
shl esi, 6
and eax, 0x3f
or esi, eax
add ebx, 3
mov dword [esp + 0xa0], esi
mov ecx, esi
mov dword [esp + 0xc], ebx
jmp 0x49a049
test al, 4
jne 0x499ffb
and eax, 3
shl eax, 6
or esi, eax
movzx eax, byte [ebx + 2]
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, byte [ebx + 3]
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, byte [ebx + 4]
shl esi, 6
and eax, 0x3f
or esi, eax
add ebx, 4
mov dword [esp + 0xa0], esi
mov ecx, esi
mov dword [esp + 0xc], ebx
jmp 0x49a049
and eax, 1
shl eax, 6
or esi, eax
movzx eax, byte [ebx + 2]
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, byte [ebx + 3]
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, byte [ebx + 4]
shl esi, 6
and eax, 0x3f
or esi, eax
movzx eax, byte [ebx + 5]
shl esi, 6
and eax, 0x3f
or esi, eax
add ebx, 5
mov dword [esp + 0xa0], esi
mov ecx, esi
mov dword [esp + 0xc], ebx
jmp 0x49a049
mov esi, dword [esp + 0x64]
cmp dword [esp + 0x20], 0
jne 0x49a0ee
cmp ecx, 0x5c
jne 0x49a0b8
push 1
push dword [esp + 0x44]
lea eax, [esp + 0xa8]
push dword [edi + 0x40]
mov edi, dword [ebp + 0x14]
push edi
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00495b30
add esp, 0x18
cmp dword [edi], 0
jne 0x49987b
test eax, eax
je 0x49a0a7
cmp eax, 5
jne 0x49d0c0
mov ebx, dword [esp + 0xc]
mov esi, 8
mov edx, dword [esp + 0x34]
mov dword [esp + 0xa0], esi
jmp 0x49a0f1
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0xa0]
mov edx, dword [esp + 0x34]
jmp 0x49a0f1
cmp ecx, 0x5b
jne 0x49a0ee
mov al, byte [ebx + 1]
cmp al, 0x3a
je 0x49a0cc
cmp al, 0x2e
je 0x49a0cc
cmp al, 0x3d
jne 0x49a0ee
lea eax, [esp + 0x88]
push eax
push ebx
call fcn.004985a0
mov edi, dword [ebp + 0x14]
add esp, 8
test eax, eax
jne 0x49d0c0
mov ebx, dword [esp + 0xc]
jmp 0x49a0f1
mov edi, dword [ebp + 0x14]
cmp esi, edx
jb 0x49d0d8
je 0x49a12b
mov edi, 2
mov dword [esp + 0x2c], edi
cmp esi, 0xd
je 0x49a10e
cmp esi, 0xa
jne 0x49a11d
mov eax, dword [ebp + 0x30]
push esi
push edx
push eax
or dword [eax + 0x64], 0x800
jmp 0x49a166
mov eax, dword [ebp + 0x30]
push esi
push edx
push eax
jmp 0x49a166
mov ebx, ecx
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x90]
mov edi, eax
mov dword [esp + 0x2c], eax
cmp eax, 2
jge 0x49a144
lea edi, [eax + 1]
mov dword [esp + 0x2c], edi
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x49a161
cmp dword [esp + 0x18], esi
jne 0x49a161
cmp edi, 1
jne 0x49a161
inc ebx
cmp byte [ebx], 0x5d
je 0x49a327
push edx
push edx
push dword [ebp + 0x30]
push dword [esp + 0x4c]
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.00498800
mov ebx, dword [esp + 0x24]
mov esi, eax
add esp, 0x18
add esi, dword [esp + 0x60]
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
inc ebx
mov dword [esp + 0xc], ebx
movzx ecx, byte [ebx]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x49a1d6
test eax, eax
je 0x49a1bf
lea ebx, [eax + 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
mov dword [esp + 0x34], eax
test eax, eax
jne 0x49a1da
mov eax, dword [ebp + 0x14]
mov dword [eax], 6
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x68]
cmp eax, 0x5d
jne 0x4995d0
cmp dword [esp + 0x20], 0
jne 0x4995d0
mov edi, ecx
mov eax, 1
cmp dword [esp + 0x28], edi
ja 0x49a203
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
cmp ecx, 0xfffffffe
jne 0x49a213
or ecx, 0xffffffff
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x7c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x8c], ebx
test eax, eax
je 0x49a4cf
mov eax, dword [esp + 0x40]
test edx, edx
jne 0x49a255
test ecx, ecx
je 0x49a255
test eax, 0x20000000
je 0x49a4cf
cmp dword [esp + 0x4c], 0
mov ebx, dword [esp + 0x1c]
je 0x49a2aa
test ecx, ecx
je 0x49a2aa
test ebx, ebx
jne 0x49a2aa
test eax, 0x20000000
jne 0x49a2aa
mov eax, dword [esp + 0x28]
mov byte [eax], 2
mov eax, dword [esp + 0x28]
inc eax
push eax
push 0x100
mov dword [esp + 0x30], eax
call fcn.0050a770
mov ecx, dword [esp + 0x30]
add ecx, eax
push ecx
push 0x10ffff
mov dword [esp + 0x38], ecx
call fcn.0050a770
mov edx, dword [esp + 0x28]
add esp, 0x10
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
mov byte [eax], 0
inc dword [esp + 0x28]
test ebx, ebx
mov byte [ecx], 0x70
setne al
mov byte [ecx + 3], al
test edx, edx
je 0x49a2cd
or al, 4
mov byte [ecx + 3], al
test esi, esi
jle 0x49a49a
or byte [ecx + 3], 2
lea edi, [ecx + 4]
mov eax, dword [esp + 0x28]
sub eax, edi
push eax
lea eax, [edi + 0x20]
push edi
push eax
call fcn.004adc20
add esp, 0xc
test ebx, ebx
je 0x49a30d
cmp dword [esp + 0x18], 0
jne 0x49a30d
xor ecx, ecx
lea ecx, [ecx]
not byte [esp + ecx + 0xc4]
inc ecx
cmp ecx, 0x20
jb 0x49a300
mov ecx, 8
lea esi, [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x28]
add ecx, 0x20
jmp 0x49a49e
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x68], eax
je 0x49a3fc
mov eax, dword [esp + 0x44]
cmp eax, 0xfffffffe
jne 0x49a356
or eax, 0xffffffff
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x40]
test ebx, ebx
je 0x49a3bf
test al, 1
je 0x49a3c1
mov eax, edx
test eax, eax
jns 0x49a373
add eax, 0x7f
sar eax, 7
movzx ecx, byte [eax + 0x55e200]
mov eax, edx
shl ecx, 7
and eax, 0x8000007f
jns 0x49a38e
dec eax
or eax, 0xffffff80
inc eax
add ecx, eax
movzx eax, word [ecx*2 + 0x560400]
mov cl, byte [eax*8 + 0x55cb83]
test cl, cl
je 0x49a3bb
mov eax, dword [esp + 0x10]
lea edx, [eax + 3]
mov word [eax], 0x90f
mov byte [eax + 2], cl
mov dword [esp + 0x10], edx
jmp 0x49a53e
mov eax, dword [esp + 0x40]
test al, 1
mov ecx, dword [esp + 0x10]
setne al
add al, 0x1f
mov byte [ecx], al
lea esi, [ecx + 1]
test ebx, ebx
je 0x49a3ee
cmp edx, 0x7f
jbe 0x49a3ee
push esi
push edx
call fcn.0050a770
add esp, 8
lea edx, [esi + eax]
mov dword [esp + 0x10], edx
jmp 0x49a53a
mov byte [esi], dl
lea edx, [esi + 1]
mov dword [esp + 0x10], edx
jmp 0x49a53a
cmp dword [esp + 0x4c], 0
je 0x49a432
cmp edx, 0x7f
jbe 0x49a432
lea eax, [esp + 0x80]
push eax
push edx
call fcn.0050a770
mov edi, dword [ebp + 0x30]
mov esi, eax
mov ebx, dword [esp + 0x18]
add esp, 8
mov dword [esp + 0x38], ebx
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov dword [esp + 0x58], eax
jmp 0x49a462
mov edi, dword [ebp + 0x30]
mov esi, 1
mov byte [esp + 0x80], dl
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x58], eax
je 0x49cf37
mov ebx, dword [esp + 0x10]
test byte [esp + 0x40], 1
je 0x49cf3c
movzx edx, byte [esp + 0x80]
cmp edx, 0xc0
jb 0x49cebe
test dl, 0x20
jne 0x49ce0e
movzx eax, byte [esp + 0x81]
and edx, 0x1f
jmp 0x49ceb6
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x38]
mov eax, ecx
mov esi, dword [esp + 0x20]
sub eax, edx
mov edi, dword [esp + 0x24]
sar eax, 8
mov byte [edx + 1], al
mov al, cl
sub al, dl
mov dword [esp + 0x10], ecx
mov byte [edx + 2], al
mov edx, ecx
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov edx, dword [ebp + 0x34]
test edx, edx
je 0x49a4f0
mov eax, dword [esp + 0x28]
sub eax, edi
add dword [edx], eax
cmp dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
setne al
add al, 0x6e
mov byte [ecx], al
inc ecx
jmp 0x49a531
mov ebx, dword [esp + 0x1c]
cmp ebx, ecx
mov edx, dword [esp + 0x10]
setne al
add al, 0x6e
mov byte [edx], al
inc edx
mov dword [esp + 0x10], edx
test ebx, ebx
je 0x49a51d
xor ecx, ecx
lea esp, [esp]
not byte [esp + ecx + 0xc4]
inc ecx
cmp ecx, 0x20
jb 0x49a510
mov ecx, 8
lea esi, [esp + 0xc4]
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x10]
add ecx, 0x20
mov dword [esp + 0x10], ecx
mov edx, ecx
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
inc ebx
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0xc], ebx
jmp 0x498f18
test edx, edx
je case.0x499339.1
mov al, byte [ebx + 1]
inc ebx
xor esi, esi
or edx, 0xffffffff
cmp al, 0x30
jb 0x49a5ee
cmp al, 0x39
ja 0x49a5ee
lea esi, [esi + esi*4]
movzx eax, al
lea esi, [esi - 0x18]
inc ebx
lea esi, [eax + esi*2]
cmp esi, 0xffff
jg 0x49a5e3
mov al, byte [ebx]
cmp al, 0x30
jae 0x49a584
mov al, byte [ebx + 1]
inc ebx
cmp al, 0x7d
je 0x49a5f4
xor edx, edx
cmp al, 0x30
jb 0x49a5d4
cmp al, 0x39
ja 0x49a5d4
lea edx, [edx + edx*4]
movzx eax, al
lea edx, [edx - 0x18]
inc ebx
lea edx, [eax + edx*2]
cmp edx, 0xffff
jg 0x49a5e3
mov al, byte [ebx]
cmp al, 0x30
jae 0x49a5b5
cmp edx, esi
jge 0x49a5f4
mov eax, dword [ebp + 0x14]
mov dword [eax], 4
jmp 0x49a5ff
mov eax, dword [ebp + 0x14]
mov dword [eax], 5
jmp 0x49a5ff
cmp al, 0x7d
jne 0x49a5a7
mov edx, esi
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x50], edx
cmp dword [eax], 0
mov dword [esp + 0xc], ebx
jne 0x49d48c
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x6c]
jmp 0x49a636
xor eax, eax
or edx, 0xffffffff
jmp 0x49a62e
mov eax, 1
or edx, 0xffffffff
jmp 0x49a62e
xor eax, eax
mov edx, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x49d12a
test eax, eax
jne 0x49a66d
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x6c]
mov esi, dword [ebp + 0x30]
sub eax, edx
neg eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x54], ecx
sbb eax, eax
and eax, 2
mov dword [esp + 0x9c], eax
test edi, edi
je 0x49a750
inc ebx
mov cl, byte [ebx]
mov edx, dword [esi + 0xc]
movzx eax, cl
test byte [eax + edx], 1
je 0x49a6b0
mov cl, byte [ebx + 1]
inc ebx
movzx eax, cl
test byte [eax + edx], 1
jne 0x49a6a3
cmp cl, 0x23
jne 0x49a74b
inc ebx
cmp byte [ebx], 0
je 0x49a695
nop
mov ecx, dword [esi + 0x84]
mov eax, dword [esi + 0x1c]
add esi, 0x88
test ecx, ecx
je 0x49a6ff
cmp ebx, eax
jae 0x49a6f2
push dword [esp + 0x4c]
push esi
push eax
push ecx
push ebx
call fcn.0050a440
add esp, 0x14
test eax, eax
je 0x49a6f2
mov eax, 1
jmp 0x49a6f4
xor eax, eax
test eax, eax
je 0x49a724
add ebx, dword [esi]
mov esi, dword [ebp + 0x30]
jmp 0x49a695
mov ecx, dword [esi]
sub eax, ecx
cmp ebx, eax
ja 0x49a724
mov edx, dword [ebp + 0x30]
mov al, byte [ebx]
cmp al, byte [edx + 0x8c]
jne 0x49a724
cmp ecx, 1
je 0x49a6f8
mov al, byte [ebx + 1]
cmp al, byte [edx + 0x8d]
je 0x49a6f8
inc ebx
cmp dword [esp + 0x4c], 0
je 0x49a73e
mov al, byte [ebx]
and al, 0xc0
cmp al, 0x80
jne 0x49a73e
mov al, byte [ebx + 1]
inc ebx
and al, 0xc0
cmp al, 0x80
je 0x49a734
cmp byte [ebx], 0
je 0x49a6fa
mov esi, dword [ebp + 0x30]
jmp 0x49a6c0
dec ebx
mov dword [esp + 0xc], ebx
cmp byte [ebx + 1], 0x28
jne 0x49a790
cmp byte [ebx + 2], 0x3f
jne 0x49a790
cmp byte [ebx + 3], 0x23
jne 0x49a790
add ebx, 4
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
test al, al
je 0x499216
cmp al, 0x29
je 0x49a787
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
test al, al
jne 0x49a773
jmp 0x499216
cmp byte [ebx], 0
je 0x499216
mov cl, byte [ebx + 1]
cmp cl, 0x2b
jne 0x49a7af
inc ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x2c], 1
mov dword [esp + 0xc], ebx
jmp 0x49a7d1
cmp cl, 0x3f
jne 0x49a7c6
mov ecx, dword [esp + 0x108]
inc ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], ebx
jmp 0x49a7d1
mov eax, dword [esp + 0x104]
mov dword [esp + 0x18], eax
mov edi, dword [esp + 0x38]
cmp byte [edi], 0x75
jne 0x49a850
push 3
lea eax, [edi + 3]
push edi
push eax
call fcn.004adc20
add dword [esp + 0x1c], 6
add esp, 0xc
cmp dword [ebp + 0x34], 0
mov word [edi], 0x81
mov byte [edi + 2], 6
mov word [edi + 6], pe_nt_image_headers32
mov byte [edi + 8], 6
mov dword [esp + 0xac], 9
jne 0x49a84c
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x20]
add eax, 2
cmp edx, eax
jb 0x49a84c
movzx eax, byte [edx - 2]
movzx ecx, byte [edx - 1]
shl eax, 8
or ecx, eax
mov eax, edi
sub eax, dword [esi + 0x14]
inc eax
cmp ecx, eax
jne 0x49a84c
lea eax, [ecx + 3]
shr eax, 8
add cl, 3
mov byte [edx - 2], al
mov eax, dword [esi + 0x20]
mov byte [eax - 1], cl
mov ebx, dword [esp + 0xc]
mov dl, byte [edi]
cmp dl, 0x1d
je 0x49b07a
cmp dl, 0x1e
je 0x49b07a
cmp dl, 0x1f
je 0x49b07a
cmp dl, 0x20
je 0x49b07a
cmp dl, 0x17
jae 0x49a890
mov eax, 0x34
movzx ecx, dl
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], ecx
jmp 0x49b126
cmp dl, 0x6e
je 0x49afbd
cmp dl, 0x6f
je 0x49afbd
cmp dl, 0x70
je 0x49afbd
cmp dl, 0x71
je 0x49afbd
cmp dl, 0x72
je 0x49afbd
cmp dl, 0x73
je 0x49afbd
cmp dl, 0x74
je 0x49afbd
lea eax, [edx - 0x7d]
cmp al, 0xa
ja 0x49afa1
mov eax, dword [esp + 0x58]
xor ecx, ecx
mov edi, dword [esp + 0x10]
sub edi, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], eax
cmp dl, 0x87
jne 0x49a90d
cmp byte [ecx + 3], 0x91
je 0x49af65
cmp dl, 0x81
mov edx, dword [esp + 0x6c]
jae 0x49a936
test edx, edx
jg 0x49af65
mov eax, dword [esp + 0x50]
test eax, eax
js 0x49a92b
cmp eax, 1
jle 0x49a93a
mov eax, 1
mov dword [esp + 0x50], eax
jmp 0x49a93a
mov eax, dword [esp + 0x50]
test edx, edx
jne 0x49a9fa
push dword [esp + 0x58]
cmp eax, 1
mov eax, dword [esp + 0x14]
push esi
push dword [esp + 0x54]
mov byte [eax], dl
jg 0x49a9ae
push 1
push ecx
call fcn.00498600
mov ebx, dword [esp + 0x4c]
push edi
push ebx
lea esi, [ebx + 1]
push esi
call fcn.004adc20
mov edx, dword [esp + 0x30]
add esp, 0x20
mov ecx, dword [esp + 0x50]
inc edx
mov dword [esp + 0x10], edx
test ecx, ecx
jne 0x49a991
mov byte [ebx], 0xa1
mov ebx, dword [esp + 0xc]
jmp 0x49af69
mov al, byte [esp + 0x18]
sub al, 0x6e
mov dword [esp + 0x34], ebx
mov byte [ebx], al
dec ecx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x38], esi
mov esi, dword [ebp + 0x30]
jmp 0x49ab88
push 4
push ecx
call fcn.00498600
mov ebx, dword [esp + 0x4c]
push edi
push ebx
lea eax, [ebx + 4]
push eax
call fcn.004adc20
mov al, byte [esp + 0x38]
lea ecx, [ebx + 2]
add dword [esp + 0x30], 4
sub al, 0x6e
mov byte [ebx], al
add esp, 0x20
mov byte [ebx + 1], 0x83
lea eax, [ecx + 2]
mov word [ecx], 0
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x38], eax
dec ecx
jmp 0x49ab88
cmp edx, 1
jle 0x49ab7e
mov ebx, dword [ebp + 0x34]
test ebx, ebx
je 0x49aa7c
lea ecx, [edx - 1]
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
imul ecx, dword [esp + 0xac]
fstp qword [esp + 0x90]
fld qword [esp + 0x90]
fild dword [esp + 0xac]
fstp qword [esp + 0x90]
fmul qword [esp + 0x90]
fcomp qword [0x555270]
fnstsw ax
test ah, 0x41
je 0x49d10f
mov eax, dword [esp + 0xa4]
mov edx, dword [ebx]
sub eax, edx
cmp eax, ecx
jl 0x49d10f
lea eax, [edx + ecx]
mov edx, dword [esp + 0x6c]
mov dword [ebx], eax
jmp 0x49ab7a
cmp dword [esp + 0xc0], 0
je 0x49aa9d
cmp dword [esp + 0x5c], 0
jge 0x49aa9d
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x48], 1
mov ebx, dword [esi + 0x20]
sub ebx, dword [esi + 0x10]
push edi
push ecx
push dword [esp + 0x18]
call fcn.004adc20
mov edx, dword [ebp + 0x30]
add esp, 0xc
mov esi, dword [esi + 0x10]
mov ecx, esi
sub ecx, ebx
add ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x3c]
mov edi, dword [edx + 0x20]
add eax, 0xffffff9c
add eax, ecx
cmp edi, eax
jbe 0x49ab09
push edx
call fcn.00495a20
mov ecx, dword [ebp + 0x14]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x49987b
mov edx, dword [ebp + 0x30]
mov esi, dword [edx + 0x10]
mov ecx, esi
mov eax, dword [edx + 0x3c]
sub ecx, ebx
add ecx, dword [esp + 0x1c]
add eax, 0xffffff9c
mov edi, dword [edx + 0x20]
add eax, ecx
cmp edi, eax
ja 0x49aad6
mov edx, dword [esp + 0x1c]
lea eax, [ebx + esi]
add edx, esi
mov esi, dword [ebp + 0x30]
cmp edx, eax
jae 0x49ab55
lea esp, [esp]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x30]
add ecx, eax
sar ecx, 8
mov byte [edi], cl
mov cl, byte [edx + 1]
add edx, 2
add cl, al
mov eax, dword [esi + 0x20]
mov byte [eax + 1], cl
add dword [esi + 0x20], 2
mov eax, dword [esi + 0x10]
mov edi, dword [esi + 0x20]
add eax, ebx
cmp edx, eax
jb 0x49ab20
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
inc eax
add dword [esp + 0x10], edi
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x48], eax
cmp eax, edx
jl 0x49aaa5
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
test ecx, ecx
jle 0x49ab8e
sub ecx, edx
mov dword [esp + 0x50], ecx
test ecx, ecx
js 0x49ae05
mov edx, dword [ebp + 0x34]
test edx, edx
je 0x49ac18
test ecx, ecx
jle 0x49ac18
mov ecx, dword [esp + 0xac]
add ecx, 7
mov dword [esp + 0x90], ecx
fild dword [esp + 0x90]
imul ecx, dword [esp + 0x50]
fstp qword [esp + 0x90]
fld qword [esp + 0x90]
fild dword [esp + 0x50]
sub ecx, 6
fstp qword [esp + 0x90]
fmul qword [esp + 0x90]
fcomp qword [0x555270]
fnstsw ax
test ah, 0x41
je 0x49d10f
mov eax, dword [esp + 0xa4]
mov edx, dword [edx]
sub eax, edx
cmp eax, ecx
jl 0x49d10f
lea eax, [edx + ecx]
mov ecx, dword [ebp + 0x34]
mov dword [ecx], eax
jmp 0x49ad7b
lea eax, [ecx - 1]
mov dword [esp + 0x48], eax
test eax, eax
js 0x49ad7f
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
sub cl, 0x6e
mov dword [esp + 0x18], ecx
jmp 0x49ac43
mov esi, dword [ebp + 0x30]
mov ebx, dword [esi + 0x20]
sub ebx, dword [esi + 0x10]
mov byte [edx], cl
inc edx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x10], edx
test eax, eax
je 0x49ac81
lea ecx, [edx + 1]
mov byte [edx], 0x83
mov edx, dword [esp + 0x14]
mov eax, ecx
sub eax, edx
mov dword [esp + 0x14], ecx
neg edx
sbb edx, edx
and edx, eax
mov eax, edx
mov byte [ecx + 1], dl
sar eax, 8
lea edx, [ecx + 2]
mov byte [ecx], al
mov dword [esp + 0x10], edx
push edi
push dword [esp + 0x3c]
push edx
call fcn.004adc20
mov edx, dword [ebp + 0x30]
add esp, 0xc
mov esi, dword [esi + 0x10]
mov ecx, esi
sub ecx, ebx
add ecx, dword [esp + 0x1c]
mov eax, dword [edx + 0x3c]
mov edi, dword [edx + 0x20]
add eax, 0xffffff9c
add eax, ecx
cmp edi, eax
jbe 0x49ace3
lea esp, [esp]
push edx
call fcn.00495a20
mov ecx, dword [ebp + 0x14]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x49987b
mov edx, dword [ebp + 0x30]
mov esi, dword [edx + 0x10]
mov ecx, esi
mov eax, dword [edx + 0x3c]
sub ecx, ebx
add ecx, dword [esp + 0x1c]
add eax, 0xffffff9c
mov edi, dword [edx + 0x20]
add eax, ecx
cmp edi, eax
ja 0x49acb0
mov edx, dword [esp + 0x1c]
lea eax, [ebx + esi]
add edx, esi
cmp edx, eax
jae 0x49ad54
mov ebx, dword [esp + 0x48]
mov esi, ebx
neg esi
sbb esi, esi
and esi, 3
inc esi
neg ebx
sbb bl, bl
and bl, 3
inc bl
jmp 0x49ad10
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x30]
add ecx, esi
add ecx, eax
sar ecx, 8
mov byte [edi], cl
lea ecx, [ebx + eax]
mov eax, dword [ebp + 0x30]
add cl, byte [edx + 1]
add edx, 2
mov eax, dword [eax + 0x20]
mov byte [eax + 1], cl
mov eax, dword [ebp + 0x30]
add dword [eax + 0x20], 2
mov edi, dword [eax + 0x20]
mov eax, dword [eax + 0x10]
add eax, dword [esp + 0x60]
cmp edx, eax
jb 0x49ad10
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
add edx, edi
mov ecx, dword [esp + 0x18]
sub eax, 1
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x48], eax
jns 0x49ac40
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x14]
test esi, esi
je 0x49add5
mov ecx, dword [esp + 0x10]
nop
mov ebx, ecx
mov edx, ecx
sub ebx, esi
inc ebx
sub edx, ebx
movzx ecx, byte [edx + 1]
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
mov eax, ebx
sub esi, ecx
neg ecx
sbb ecx, ecx
sar eax, 8
and esi, ecx
mov ecx, dword [esp + 0x10]
mov byte [ecx], pe_nt_image_headers32
mov byte [ecx + 1], al
mov byte [ecx + 2], bl
add ecx, 3
mov dword [esp + 0x10], ecx
mov byte [edx + 1], al
mov byte [edx + 2], bl
test esi, esi
jne 0x49ad90
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
cmp dword [esp + 0x2c], 0
je 0x49af69
mov eax, dword [esp + 0x54]
movzx edx, byte [eax]
lea eax, [edx - 0x1d]
cmp eax, 0x53
ja case.0x49adfe.33
movzx eax, byte [eax + 0x49d5b8]
jmp dword [eax*4 + 0x49d5a4]
mov edx, dword [esp + 0x10]
movzx ecx, byte [edx - 2]
lea edi, [edx - 3]
movzx eax, byte [edi + 2]
mov esi, edi
shl ecx, 8
or ecx, eax
sub esi, ecx
mov dword [esp + 0x60], esi
mov bl, byte [esi]
cmp bl, 0x81
je 0x49ae2d
cmp bl, 0x82
jne 0x49ae4d
cmp dword [esp + 0x2c], 0
je 0x49ae3b
mov byte [esi], 0x83
mov bl, 0x83
jmp 0x49ae4d
cmp bl, 0x81
je 0x49af90
cmp bl, 0x82
je 0x49af90
cmp dword [ebp + 0x34], 0
jne 0x49ae86
push 0
push dword [ebp + 0x30]
push dword [esp + 0x54]
push edi
push esi
call fcn.00496930
add esp, 0x14
test eax, eax
jne 0x49aeca
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
add esi, ecx
cmp byte [esi], 0x77
je 0x49ae53
mov esi, dword [esp + 0x60]
mov dl, byte [esi]
cmp dl, 0x87
jne 0x49aea5
movzx ecx, byte [esi + 1]
movzx eax, byte [esi + 2]
shl ecx, 8
or ecx, eax
cmp byte [ecx + esi], 0x77
je 0x49aea5
mov byte [esi], 0x8c
mov dl, 0x8c
cmp dword [esp + 0x2c], 0
je 0x49af59
cmp dl, 0x87
je 0x49aed5
cmp dl, 0x8c
je 0x49aed5
inc dl
mov byte [esi], dl
mov edx, dword [esp + 0x10]
mov byte [edi], 0x7b
jmp 0x49af32
mov esi, dword [esp + 0x60]
add bl, 5
mov byte [esi], bl
jmp 0x49ae86
push dword [esp + 0x58]
mov eax, dword [esp + 0x14]
mov ebx, eax
push dword [ebp + 0x30]
sub ebx, esi
push dword [esp + 0x54]
mov byte [eax], 0
push 3
push esi
call fcn.00498600
push ebx
lea eax, [esi + 3]
push esi
push eax
call fcn.004adc20
mov ecx, dword [esp + 0x30]
add ebx, 3
add esp, 0x20
cmp byte [esi], 0x87
setne al
dec al
lea edx, [ecx + 6]
and al, 0xfb
mov dword [esp + 0x10], edx
add al, 0x89
mov byte [esi], al
mov eax, ebx
sar eax, 8
mov byte [ecx + 3], 0x7b
mov byte [ecx + 4], al
mov byte [ecx + 5], bl
mov byte [esi + 1], al
mov byte [esi + 2], bl
mov eax, dword [esp + 0x34]
test eax, eax
je 0x49af3d
mov byte [eax], 0x94
cmp dword [esp + 0x6c], 2
mov ebx, dword [esp + 0xc]
jge 0x49ade4
mov dword [esp + 0x2c], 0
jmp 0x49add9
mov eax, dword [esp + 0x18]
add al, 0x79
mov byte [edi], al
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov edi, dword [ebp + 0x30]
mov eax, dword [esp + 0x9c]
or dword [edi + 0x68], eax
inc ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov eax, dword [esp + 0x18]
add al, 0x79
mov byte [edi], al
mov ebx, dword [esp + 0xc]
jmp 0x49add9
cmp dl, 0x9d
je 0x49af65
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xb
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x49afcd
mov edx, edi
mov dword [esp + 0x10], edx
jmp 0x49af69
mov edx, dword [esp + 0x6c]
test edx, edx
jne 0x49b013
cmp ecx, 0xffffffff
jne 0x49aff4
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add al, 0x62
mov byte [edx], al
inc edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
jmp 0x49add9
cmp ecx, 1
jne 0x49b037
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add al, 0x66
mov byte [edx], al
inc edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
jmp 0x49add9
cmp edx, 1
jne 0x49b037
cmp ecx, 0xffffffff
jne 0x49b037
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add al, 0x64
mov byte [edx], al
inc edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
jmp 0x49add9
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
add al, 0x68
mov byte [ecx], al
mov eax, edx
mov byte [ecx + 2], dl
mov edx, dword [esp + 0x50]
sar eax, 8
mov byte [ecx + 1], al
lea eax, [edx + 1]
neg eax
sbb eax, eax
and edx, eax
mov eax, edx
mov byte [ecx + 4], dl
mov dword [esp + 0x50], edx
lea edx, [ecx + 5]
sar eax, 8
mov byte [ecx + 3], al
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
jmp 0x49add9
movzx eax, dl
add eax, 0xffffffe3
cmp eax, 3
ja case.0x49b085.29
jmp dword [eax*4 + 0x49d60c]
mov dword [esp + 0x30], 0xd
jmp 0x49b0aa
mov eax, 0x1a
jmp 0x49b0a6
mov eax, 0x27
jmp 0x49b0a6
xor eax, eax
mov dword [esp + 0x30], eax
cmp dword [esp + 0x4c], 0
je 0x49b0fc
mov ecx, dword [esp + 0x10]
dec ecx
mov al, byte [ecx]
and al, 0xc0
cmp al, 0x80
jne 0x49b0fc
mov al, byte [ecx - 1]
dec ecx
and al, 0xc0
cmp al, 0x80
je 0x49b0c2
mov esi, dword [esp + 0x10]
mov eax, esi
sub eax, ecx
push eax
mov dword [esp + 0x20], eax
lea eax, [esp + 0x11c]
push ecx
push eax
call fcn.004adc20
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov dl, byte [edi]
or ecx, 0x10000000
mov dword [esp + 0x1c], ecx
jmp 0x49b12a
mov eax, dword [esp + 0x10]
movzx ecx, byte [eax - 1]
mov dword [esp + 0x1c], ecx
cmp dl, 0x1e
ja 0x49b126
cmp dword [esp + 0x6c], 1
jle 0x49b126
mov eax, dword [esi + 0x68]
or eax, dword [esp + 0xb4]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x5c], eax
mov esi, dword [esp + 0x10]
cmp dl, 0x10
je 0x49b146
cmp dl, 0xf
je 0x49b146
mov dword [esp + 0x34], 0xffffffff
mov dword [esp + 0x14], 0xffffffff
jmp 0x49b156
movzx eax, byte [edi + 1]
mov dword [esp + 0x14], eax
movzx eax, byte [edi + 2]
mov dword [esp + 0x34], eax
cmp dword [esp + 0x50], 0
mov edx, esi
mov dword [esp + 0x10], edi
je 0x49af65
mov eax, dword [esp + 0x30]
add dword [esp + 0x18], eax
mov esi, dword [esp + 0x6c]
test esi, esi
jne 0x49b206
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x18]
cmp edx, 0xffffffff
jne 0x49b1d8
add al, 0x21
mov byte [edi], al
lea edx, [edi + 1]
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x4c], 0
je 0x49b371
test ecx, 0x10000000
je 0x49b371
and ecx, 7
lea eax, [esp + 0x118]
push ecx
push eax
push edx
mov dword [esp + 0x28], ecx
call fcn.004adc20
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add ecx, dword [esp + 0x1c]
jmp 0x49b378
mov ebx, dword [esp + 0x14]
cmp edx, 1
jne 0x49b1ee
add al, 0x25
lea edx, [edi + 1]
mov byte [edi], al
mov dword [esp + 0x10], edx
jmp 0x49b19b
add al, 0x27
mov byte [edi], al
mov eax, edx
mov byte [edi + 2], dl
lea edx, [edi + 3]
sar eax, 8
mov byte [edi + 1], al
mov dword [esp + 0x10], edx
jmp 0x49b19b
cmp esi, 1
jne 0x49b24f
mov eax, dword [esp + 0x50]
cmp eax, 0xffffffff
jne 0x49b21f
mov eax, dword [esp + 0x18]
add al, 0x23
jmp 0x49b18e
mov dword [esp + 0x10], edx
cmp eax, 1
je 0x49af65
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x50]
add al, 0x27
mov byte [edx], al
lea eax, [ebx - 1]
sar eax, 8
mov byte [edx + 1], al
lea eax, [ebx - 1]
mov byte [edx + 2], al
add edx, 3
jmp 0x49b193
mov ebx, dword [esp + 0x6c]
lea edx, [edi + 3]
add al, 0x29
mov dword [esp + 0x10], edx
mov byte [edi], al
mov eax, ebx
sar eax, 8
mov byte [edi + 1], al
mov eax, dword [esp + 0x50]
mov byte [edi + 2], bl
test eax, eax
jns 0x49b2da
cmp dword [esp + 0x4c], 0
je 0x49b2b3
test ecx, 0x10000000
je 0x49b2b3
mov esi, ecx
lea eax, [esp + 0x118]
and esi, 7
push esi
push eax
push edx
call fcn.004adc20
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [esp + 0x18]
add edx, esi
mov ecx, dword [esp + 0x1c]
add al, 0x21
mov byte [edx], al
inc edx
jmp 0x49b193
mov eax, dword [esp + 0x14]
mov byte [edx], cl
inc edx
test eax, eax
js 0x49b2cc
mov byte [edx], al
lea eax, [edx + 1]
mov edx, dword [esp + 0x34]
mov byte [eax], dl
lea edx, [eax + 1]
mov eax, dword [esp + 0x18]
add al, 0x21
mov byte [edx], al
inc edx
jmp 0x49b193
cmp eax, ebx
je 0x49b197
cmp dword [esp + 0x4c], 0
je 0x49b314
test ecx, 0x10000000
je 0x49b314
mov esi, ecx
lea eax, [esp + 0x118]
and esi, 7
push esi
push eax
push edx
call fcn.004adc20
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov ecx, dword [esp + 0x1c]
add edx, esi
jmp 0x49b317
mov byte [edx], cl
inc edx
mov ebx, dword [esp + 0x14]
test ebx, ebx
js 0x49b32d
mov byte [edx], bl
lea eax, [edx + 1]
mov edx, dword [esp + 0x34]
mov byte [eax], dl
lea edx, [eax + 1]
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x6c]
mov dword [esp + 0x50], eax
cmp eax, 1
mov eax, dword [esp + 0x18]
jne 0x49b350
add al, 0x25
mov byte [edx], al
inc edx
mov dword [esp + 0x10], edx
jmp 0x49b19b
add al, 0x27
mov byte [edx], al
mov eax, dword [esp + 0x50]
sar eax, 8
mov byte [edx + 1], al
mov eax, dword [esp + 0x50]
mov byte [edx + 2], al
add edx, 3
mov dword [esp + 0x10], edx
jmp 0x49b19b
mov byte [edx], cl
mov ecx, dword [esp + 0x10]
inc ecx
mov dword [esp + 0x10], ecx
test ebx, ebx
js 0x49add1
lea eax, [ecx + 1]
mov byte [ecx], bl
mov ecx, dword [esp + 0x34]
lea edx, [eax + 1]
mov byte [eax], cl
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x10], edx
jmp 0x49add9
mov eax, dword [esp + 0x54]
mov al, byte [eax + 3]
cmp al, 0x10
je 0x49b3c2
cmp al, 0xf
je 0x49b3c2
movzx eax, byte [edx + 0x55c438]
xor ecx, ecx
add eax, ecx
add dword [esp + 0x54], eax
jmp case.0x49adfe.33
movzx eax, byte [edx + 0x55c438]
mov ecx, 2
add eax, ecx
add dword [esp + 0x54], eax
jmp case.0x49adfe.33
movzx ecx, byte [edx + 0x55c438]
add ecx, dword [esp + 0x54]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
test esi, esi
je 0x49b430
mov al, byte [ecx - 1]
cmp al, 0xc0
jb 0x49b430
movzx eax, al
and eax, 0x3f
movzx eax, byte [eax + 0x55baf8]
add eax, ecx
mov dword [esp + 0x54], eax
jmp 0x49b430
add dword [esp + 0x54], 0x21
jmp case.0x49adfe.33
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + 1]
movzx eax, byte [eax + 2]
shl ecx, 8
or ecx, eax
add dword [esp + 0x54], ecx
mov esi, dword [esp + 0x4c]
mov edx, dword [esp + 0x10]
mov ecx, edx
mov eax, dword [esp + 0x54]
sub ecx, eax
mov dword [esp + 0x90], ecx
test ecx, ecx
jle 0x49af69
movzx ecx, byte [eax]
cmp ecx, 0x76
jae 0x49b468
mov cl, byte [ecx + 0x5551f8]
test cl, cl
je 0x49b468
mov byte [eax], cl
mov ebx, dword [esp + 0xc]
jmp 0x49af69
push dword [esp + 0x58]
mov edi, dword [ebp + 0x30]
push edi
push esi
mov byte [edx], 0
push 3
push dword [esp + 0x64]
call fcn.00498600
mov ebx, dword [esp + 0xa4]
mov eax, dword [esp + 0x68]
push ebx
push eax
add eax, 3
push eax
call fcn.004adc20
mov eax, dword [esp + 0x74]
add ebx, 3
mov ecx, dword [esp + 0x30]
add esp, 0x20
mov byte [eax], 0x81
lea eax, [ecx + 4]
mov byte [ecx + 3], pe_nt_image_headers32
lea edx, [eax + 2]
mov ecx, ebx
mov byte [eax + 1], bl
sar ecx, 8
mov byte [eax], cl
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov byte [eax + 1], cl
mov eax, dword [esp + 0x54]
mov byte [eax + 2], bl
mov ebx, dword [esp + 0xc]
jmp 0x49af6c
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x2a
jne 0x49b725
mov edx, dword [ebp + 0x30]
lea esi, [ebx + 1]
mov al, byte [esi]
add edx, 0xc
mov dword [esp + 0x60], esi
cmp al, 0x3a
je 0x49b50a
movzx ecx, al
mov eax, dword [edx]
mov dword [esp + 0x48], edx
test byte [ecx + eax], 2
je 0x49b72e
mov ecx, dword [edx]
mov ebx, esi
mov dword [esp + 0xc], ebx
mov edi, 0x553eb8
mov dword [esp + 0x30], 0
mov dword [esp + 0x14], 0
movzx eax, byte [ebx]
mov dword [esp + 0x38], 0
test byte [eax + ecx], 2
je 0x49b546
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 2
jne 0x49b538
mov ecx, dword [esp + 0x60]
mov eax, ebx
sub eax, ecx
cmp byte [ebx], 0x3a
mov dword [esp + 0x1c], eax
jne 0x49b58e
inc ebx
mov dword [esp + 0xc], ebx
mov edx, ebx
mov dword [esp + 0x14], edx
mov al, byte [ebx]
test al, al
je 0x49b577
cmp al, 0x29
je 0x49b577
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
test al, al
jne 0x49b568
mov eax, ebx
sub eax, edx
mov dword [esp + 0x30], eax
cmp eax, 0xff
ja 0x49d141
mov eax, dword [esp + 0x1c]
cmp byte [ebx], 0x29
jne 0x49b70e
xor ebx, ebx
mov esi, 0x553ee8
mov dword [esp + 0x48], ebx
cmp eax, dword [esi]
jne 0x49b5b9
push eax
push edi
push ecx
call fcn.0050a3c0
add esp, 0xc
test eax, eax
je 0x49b5d6
mov ecx, dword [esp + 0x60]
inc edi
inc ebx
add edi, dword [esi]
add esi, 0xc
mov dword [esp + 0x48], ebx
cmp esi, str._b__w_
jge 0x49b70a
mov eax, dword [esp + 0x1c]
jmp 0x49b5a2
lea ecx, [ebx + ebx*2]
mov eax, dword [ecx*4 + 0x553eec]
cmp eax, 0x9e
jne 0x49b66a
cmp dword [esp + 0x30], 0
jne 0x49d173
mov edi, dword [ebp + 0x30]
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x6c], 1
test ecx, ecx
je 0x49b63e
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 0x34]
mov edi, edi
test eax, eax
je 0x49b619
add dword [eax], 3
jmp 0x49b630
mov byte [ebx], 0xa0
movzx eax, byte [ecx + 5]
mov byte [ebx + 1], al
movzx eax, byte [ecx + 4]
mov byte [ebx + 2], al
add ebx, 3
mov eax, dword [ebp + 0x34]
mov ecx, dword [ecx]
test ecx, ecx
jne 0x49b610
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x48]
cmp dword [edi + 0x5c], 0
mov edx, dword [esp + 0x10]
setg al
add al, 0x9e
mov byte [edx], al
inc edx
cmp dword [esp + 0x44], 0xfffffffe
mov dword [esp + 0x10], edx
jne 0x49b6dd
mov dword [esp + 0x44], 0xffffffff
jmp 0x49b6dd
mov edx, dword [esp + 0x30]
test edx, edx
jne 0x49b68a
test eax, eax
js 0x49d158
mov edx, dword [esp + 0x10]
mov byte [edx], al
inc edx
mov dword [esp + 0x10], edx
jmp 0x49b6da
mov ebx, dword [ecx*4 + 0x553ef0]
test ebx, ebx
js 0x49d173
mov ecx, dword [esp + 0x10]
mov eax, dword [ebp + 0x34]
mov byte [ecx], bl
lea esi, [ecx + 2]
test eax, eax
je 0x49b6b3
add dword [eax], edx
mov byte [ecx + 1], 0
mov ecx, esi
jmp 0x49b6ca
push edx
push dword [esp + 0x18]
mov byte [ecx + 1], dl
push esi
call fcn.004adc20
mov ecx, dword [esp + 0x3c]
add esp, 0xc
add ecx, esi
mov byte [ecx], 0
mov al, bl
mov ebx, dword [esp + 0x48]
inc ecx
mov dword [esp + 0x10], ecx
mov edx, ecx
mov edi, dword [ebp + 0x30]
movzx eax, al
add eax, 0xffffff6a
cmp eax, 5
ja case.default.0x49b6ea
jmp dword [eax*4 + 0x49d61c]
or dword [edi + 0x64], 0x1000
jmp case.default.0x49b6ea
mov dword [edi + 0x70], 1
cmp ebx, 9
jl 0x49d033
mov ebx, dword [esp + 0xc]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3c
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esi + 0xc]
mov dword [esp + 0x48], edx
jmp 0x49b733
mov al, byte [ebx]
mov esi, dword [ebp + 0x30]
mov ecx, dword [esp + 0x40]
lea edi, [esi + 0x20]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi]
sub ecx, dword [esi + 0x10]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], 0x85
mov dword [esp + 0x30], edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], 0
cmp al, 0x3f
jne 0x49c071
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
add eax, 0xffffffdf
cmp eax, 0x5b
ja case.default.0x49b788
movzx eax, byte [eax + 0x49d66c]
mov esi, edx
jmp dword [eax*4 + 0x49d634]
mov esi, dword [ebp + 0x30]
mov ecx, 0x83
inc ebx
mov dword [esp + 0x34], 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
mov dword [esi + 0x7c], 1
jmp 0x49bc11
mov esi, dword [ebp + 0x30]
mov ecx, 0x83
inc ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
jmp 0x49bc11
cmp byte [ebx + 1], 0x3f
mov ecx, 0x87
mov edx, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x88], edx
jne 0x49b82c
cmp byte [ebx + 2], 0x43
jne 0x49b82c
cmp byte [ebx + 3], 0x30
mov ecx, 3
jb 0x49b80d
mov al, byte [ebx + 3]
lea ebx, [ebx]
cmp al, 0x39
ja 0x49b80d
mov al, byte [ecx + ebx + 1]
inc ecx
cmp al, 0x30
jae 0x49b800
cmp byte [ecx + ebx], 0x29
jne 0x49b81f
lea edx, [ebx + 1]
add edx, ecx
mov dword [esp + 0x88], edx
cmp byte [edx], 0x28
jne 0x49d18e
mov ecx, dword [esp + 0x14]
cmp byte [edx + 1], 0x3f
jne 0x49b85e
mov al, byte [edx + 2]
cmp al, 0x3d
je 0x49b84c
cmp al, 0x21
je 0x49b84c
cmp al, 0x3c
jne 0x49b85e
mov al, byte [edx + 3]
cmp al, 0x3d
je 0x49b84c
cmp al, 0x21
jne 0x49b85e
mov esi, dword [ebp + 0x30]
mov dword [esi + 0x80], 1
jmp 0x49bc11
mov eax, dword [esp + 0x10]
or esi, 0xffffffff
or edi, esi
mov dword [esp + 0x2c], 3
xor ecx, ecx
mov dword [esp + 0x1c], 0
mov byte [eax + 3], 0x8d
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x52
jne 0x49b8ad
cmp byte [ebx + 1], 0x26
jne 0x49b987
lea eax, [ebx + 2]
or edx, esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov byte [eax + 3], 0x8f
mov ebx, dword [esp + 0xc]
jmp 0x49b8bf
cmp al, 0x3c
jne 0x49b979
mov edx, 0x3e
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
mov dword [esp + 0x9c], edx
cmp al, 0x30
jb 0x49b8d4
cmp al, 0x39
jbe 0x49d3b2
mov ecx, dword [ebp + 0x30]
movzx eax, al
mov ecx, dword [ecx + 0xc]
test byte [eax + ecx], 0x10
je 0x49d18e
mov eax, ebx
mov dword [esp + 0x1c], eax
lea ebx, [eax + 1]
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
je 0x49b90e
lea ecx, [ecx]
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x49b900
xor eax, eax
mov dword [esp + 0x48], edx
mov edi, ebx
sub edi, dword [esp + 0x1c]
cmp dword [ebp + 0x34], eax
setne al
xor ecx, ecx
lea eax, [eax*2 + 3]
mov dword [esp + 0x2c], eax
test edx, edx
jle 0x49b9d8
mov al, byte [ebx]
inc ebx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x48], edx
cmp al, dl
je 0x49b9d8
mov eax, dword [ebp + 0x14]
dec ebx
mov dword [eax], 0x1a
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x27
jne 0x49b987
mov edx, 0x27
jmp 0x49b8ba
xor edx, edx
mov dword [esp + 0x48], edx
cmp al, 0x2d
je 0x49b9a3
cmp al, 0x2b
je 0x49b9a3
sub al, 0x30
cmp al, 9
ja 0x49b8bf
xor esi, esi
jmp 0x49b9ab
inc ebx
movzx esi, al
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x49b9d8
cmp al, 0x39
ja 0x49b9d8
cmp ecx, 0xccccccb
jg 0x49d1a5
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0xc], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
cmp al, 0x30
jae 0x49b9b1
mov al, byte [ebx]
inc ebx
mov dword [esp + 0xc], ebx
cmp al, 0x29
jne 0x49b961
cmp dword [ebp + 0x34], 0
jne 0x49bc06
test esi, esi
js 0x49ba4d
test ecx, ecx
jle 0x49d1da
test esi, esi
je 0x49ba21
mov eax, dword [ebp + 0x30]
mov eax, dword [eax + 0x40]
cmp esi, 0x2d
jne 0x49ba17
sub eax, ecx
lea ecx, [eax + 1]
jmp 0x49ba19
add ecx, eax
test ecx, ecx
jle 0x49c28a
mov esi, dword [ebp + 0x30]
cmp ecx, dword [esi + 0x44]
jg 0x49c28a
mov edx, dword [esp + 0x10]
mov eax, ecx
shr eax, 8
mov byte [edx + 4], al
mov byte [edx + 5], cl
cmp ecx, dword [esi + 0x4c]
jle 0x49ba44
mov dword [esi + 0x4c], ecx
mov ebx, dword [esp + 0xc]
jmp 0x49bc09
mov eax, dword [ebp + 0x30]
xor esi, esi
mov edx, dword [eax + 0x2c]
mov dword [esp + 0x70], edx
cmp dword [eax + 0x30], esi
jle 0x49ba98
mov ebx, edx
push edi
lea eax, [ebx + 2]
push eax
push dword [esp + 0x24]
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49ba7b
cmp byte [ebx + edi + 2], al
je 0x49ba8d
mov eax, dword [ebp + 0x30]
inc esi
add ebx, dword [eax + 0x34]
mov dword [esp + 0x70], ebx
cmp esi, dword [eax + 0x30]
jl 0x49ba60
jmp 0x49ba90
mov eax, dword [ebp + 0x30]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x70]
mov ecx, dword [eax + 0x30]
cmp esi, ecx
jge 0x49bb5e
mov eax, dword [esp + 0x70]
mov ebx, 1
movzx edx, byte [edx]
shl edx, 8
mov dword [esp + 0x9c], esi
inc esi
movzx eax, byte [eax + 1]
or edx, eax
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x90], edx
cmp edx, dword [eax + 0x4c]
jle 0x49bad2
mov dword [eax + 0x4c], edx
cmp esi, ecx
jge 0x49bb4a
mov ecx, dword [esp + 0x70]
mov edi, edi
add ecx, dword [eax + 0x34]
push edi
mov dword [esp + 0x74], ecx
lea eax, [ecx + 2]
push eax
push dword [esp + 0x24]
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49bb10
mov ecx, dword [esp + 0x70]
cmp byte [ecx + edi + 2], al
jne 0x49bb10
mov eax, dword [ebp + 0x30]
inc esi
inc ebx
cmp esi, dword [eax + 0x30]
jl 0x49bae0
cmp ebx, 1
jle 0x49bb43
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x9c]
mov eax, ecx
add dword [esp + 0x2c], 2
sar eax, 8
mov byte [edx + 4], al
mov eax, ebx
sar eax, 8
inc byte [edx + 3]
mov byte [edx + 5], cl
mov byte [edx + 6], al
mov byte [edx + 7], bl
jmp 0x49bc02
mov edx, dword [esp + 0x90]
mov ecx, dword [esp + 0x10]
mov eax, edx
shr eax, 8
mov byte [ecx + 4], al
mov byte [ecx + 5], dl
jmp 0x49bc02
cmp dword [esp + 0x48], 0
jne 0x49c28a
mov eax, dword [esp + 0x1c]
cmp byte [eax], 0x52
jne 0x49bbd2
xor ecx, ecx
lea edx, [ecx + 1]
cmp edi, edx
jle 0x49bbb8
nop
mov al, byte [edx + eax]
cmp al, 0x30
jb 0x49c28a
cmp al, 0x39
ja 0x49c28a
cmp ecx, 0xccccccb
jg 0x49d35f
movzx eax, al
lea ecx, [ecx + ecx*4]
lea ecx, [ecx - 0x18]
inc edx
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x1c]
cmp edx, edi
jl 0x49bb80
test ecx, ecx
jne 0x49bbbd
mov ecx, 0xffff
mov edx, dword [esp + 0x10]
mov eax, ecx
sar eax, 8
mov byte [edx + 3], 0x8f
mov byte [edx + 4], al
mov byte [edx + 5], cl
jmp 0x49bc02
cmp edi, 6
jne 0x49c28a
push edi
push str.DEFINE
push eax
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49d40e
mov eax, dword [esp + 0x10]
mov dword [esp + 0x2c], 1
mov byte [eax + 3], 0x91
mov ebx, dword [esp + 0xc]
mov esi, dword [ebp + 0x30]
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esi + 0x58]
inc eax
mov dword [esi + 0x58], eax
cmp eax, 0xfa
jg 0x49d32f
cmp ecx, 0x80
ja 0x49c3b7
cmp dword [esi + 0x80], 0
je 0x49c3b7
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], 0
mov dword [esi + 0x80], 0
jmp 0x49c3c8
mov esi, dword [ebp + 0x30]
mov ecx, 0x7d
mov dword [esp + 0x14], ecx
inc dword [esi + 0x5c]
inc ebx
mov dword [esp + 0xc], ebx
jmp 0x49bc11
inc ebx
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0x29
jne 0x49bcd8
mov al, byte [ebx + 1]
cmp al, 0x2a
je 0x49bcd8
cmp al, 0x2b
je 0x49bcd8
cmp al, 0x3f
je 0x49bcd8
cmp al, 0x7b
jne 0x49bcae
lea eax, [ebx + 2]
push eax
call fcn.00495ab0
add esp, 4
test eax, eax
jne 0x49bcd8
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0
mov byte [edx], 0x9d
inc edx
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov esi, dword [ebp + 0x30]
mov ecx, 0x7e
mov dword [esp + 0x14], ecx
inc dword [esi + 0x5c]
jmp 0x49bc11
mov al, byte [ebx + 1]
mov esi, dword [ebp + 0x30]
cmp al, 0x21
je 0x49be17
cmp al, 0x3d
je 0x49bdff
add esi, 0xc
movzx ecx, al
mov eax, dword [esi]
test byte [ecx + eax], 0x10
je 0x49d1f1
mov edx, dword [esp + 0x48]
mov al, byte [ebx]
inc ebx
mov byte [esp + 0x3f], al
mov edi, ebx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x60], edi
mov al, byte [ebx]
cmp al, 0x30
jb 0x49bd39
mov esi, edx
cmp al, 0x39
jbe 0x49d3b2
mov ecx, dword [esi]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x49bd52
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x49bd44
mov esi, dword [ebp + 0x30]
mov edx, ebx
sub edx, edi
cmp dword [ebp + 0x34], 0
mov dword [esp + 0x1c], edx
je 0x49bfed
mov eax, dword [esi + 0x40]
inc eax
cmp byte [esp + 0x3f], 0x3c
mov dword [esp + 0x48], eax
setne al
dec al
and al, 0x17
add al, 0x27
cmp byte [ebx], al
jne 0x49d3e0
mov ecx, dword [esi + 0x30]
cmp ecx, 0x2710
jge 0x49d29f
lea eax, [edx + 3]
cmp eax, dword [esi + 0x34]
jle 0x49bda8
mov dword [esi + 0x34], eax
cmp edx, 0x20
jg 0x49d3c9
mov esi, dword [esi + 0x28]
xor edi, edi
test ecx, ecx
jle 0x49bf4b
cmp edx, dword [esi + 4]
jne 0x49bf26
push edx
push dword [esi]
push dword [esp + 0x68]
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49bf26
mov eax, dword [esp + 0x48]
cmp dword [esi + 8], eax
je 0x49bf47
test dword [esp + 0x40], 0x80000
je 0x49d24e
mov eax, dword [ebp + 0x30]
mov dword [eax + 0x78], 1
jmp 0x49bf36
inc dword [esi + 0x5c]
mov ecx, 0x7f
add ebx, 2
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
jmp 0x49bc11
inc dword [esi + 0x5c]
mov ecx, 0x80
add ebx, 2
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
jmp 0x49bc11
mov esi, dword [ebp + 0x30]
mov ecx, 0x81
inc ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
jmp 0x49bc11
mov eax, dword [esp + 0x10]
mov ecx, eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xe8], 1
mov byte [eax], 0x76
lea edx, [ecx + 1]
mov ebx, dword [esp + 0xc]
xor ecx, ecx
inc ebx
mov esi, edx
mov dword [esp + 0xc], ebx
cmp byte [ebx], 0x30
jb 0x49be9d
mov al, byte [ebx]
cmp al, 0x39
ja 0x49be9d
lea ecx, [ecx + ecx*4]
movzx eax, al
lea ecx, [ecx - 0x18]
inc ebx
mov dword [esp + 0xc], ebx
lea ecx, [eax + ecx*2]
cmp ecx, 0xff
jg 0x49d209
cmp byte [ebx], 0x30
jae 0x49be75
cmp byte [ebx], 0x29
jne 0x49d220
mov byte [edx], cl
mov eax, dword [esp + 0xc]
mov ecx, dword [ebp + 0x30]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x38], 0
sub eax, dword [ecx + 0x18]
inc eax
sar eax, 8
mov byte [edx + 1], al
add edx, 5
mov al, byte [esp + 0xc]
sub al, byte [ecx + 0x18]
inc al
mov word [esi + 3], 0
mov byte [esi + 2], al
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
jmp 0x498f18
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x3d
je 0x49bf0e
cmp al, 0x3e
je 0x49bf0e
cmp al, 0x3c
jne 0x49d237
mov esi, edx
jmp case.0x49b788.35
mov edi, dword [ebp + 0x30]
xor ecx, ecx
cmp al, 0x3e
mov edx, 0x29
sete cl
mov dword [esp + 0x30], ecx
jmp 0x49c6f4
mov eax, dword [esp + 0x48]
cmp dword [esi + 8], eax
je 0x49d269
mov eax, dword [ebp + 0x30]
mov edx, dword [esp + 0x1c]
inc edi
add esi, 0xc
cmp edi, dword [eax + 0x30]
jl 0x49bdb5
mov ebx, dword [esp + 0xc]
mov esi, dword [ebp + 0x30]
mov eax, dword [esi + 0x30]
cmp edi, eax
jl 0x49bfed
mov ecx, dword [esi + 0x38]
cmp eax, ecx
jl 0x49bfb4
lea edi, [ecx + ecx]
lea eax, [edi + edi*2]
shl eax, 2
push eax
call dword [0xd912f8]
mov esi, eax
add esp, 4
test esi, esi
je 0x49d284
mov ebx, dword [ebp + 0x30]
mov ecx, dword [ebx + 0x38]
lea ecx, [ecx + ecx*2]
shl ecx, 2
push ecx
push dword [ebx + 0x28]
push esi
call fcn.004adc20
add esp, 0xc
cmp dword [ebx + 0x38], 0x14
jle 0x49bfac
push dword [ebx + 0x28]
call dword [0xd912fc]
add esp, 4
mov dword [ebx + 0x28], esi
mov esi, ebx
mov dword [esi + 0x38], edi
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x60]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x28]
mov dword [eax + ecx*4], edx
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x1c]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esi + 0x30]
mov edx, dword [esp + 0x48]
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x28]
mov dword [eax + ecx*4 + 8], edx
inc dword [esi + 0x30]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x30]
inc ebx
mov dword [esp + 0xc], ebx
mov eax, dword [esi + 0x40]
mov ecx, dword [esp + 0x10]
inc eax
mov dword [esi + 0x40], eax
shr eax, 8
mov dword [esp + 0x2c], 2
mov byte [ecx + 3], al
mov al, byte [esi + 0x40]
mov byte [ecx + 4], al
mov ebx, dword [esp + 0xc]
jmp 0x49bc0d
mov edi, dword [ebp + 0x30]
mov edx, 0x29
mov dword [esp + 0x30], 1
jmp 0x49c6f4
inc ebx
xor edx, edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], edx
cmp byte [ebx], 0x29
je 0x49c89f
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1d
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x30]
mov esi, dword [ebp + 0x14]
mov dword [esp + 0x1c], 0x29
jmp 0x49c1dd
test dword [esp + 0x40], 0x1000
je 0x49bff6
mov ecx, 0x83
mov dword [esp + 0x14], ecx
jmp 0x49bc11
mov edi, dword [ebp + 0x30]
lea eax, [esp + 0xec]
mov esi, dword [ebp + 0x14]
push 0
mov dword [esp + 0x8c], ebx
mov ebx, dword [esp + 0x44]
push ebx
push dword [edi + 0x40]
push esi
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00495b30
add esp, 0x18
mov edx, eax
cmp dword [esi], 0
mov dword [esp + 0x14], edx
jne 0x49987b
test edx, edx
jne 0x49c11e
cmp dword [esp + 0x4c], eax
mov eax, dword [esp + 0xec]
je 0x49c10d
cmp eax, 0x7f
jbe 0x49c10d
lea ecx, [esp + 0x80]
push ecx
push eax
call fcn.0050a770
mov ebx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [edi + 0x20]
add esp, 8
sub eax, dword [edi + 0x10]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x58], eax
jmp 0x49a462
mov byte [esp + 0x80], al
mov esi, 1
jmp 0x49a441
mov ecx, dword [esp + 0x44]
cmp ecx, 0xfffffffe
jne 0x49c136
lea eax, [edx - 6]
cmp eax, 0x10
ja 0x49c136
or ecx, 0xffffffff
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x68], eax
cmp edx, 0x1b
jne 0x49c6a3
mov ebx, dword [esp + 0xc]
xor ecx, ecx
mov eax, dword [edi + 0x20]
inc ebx
sub eax, dword [edi + 0x10]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x58], eax
cmp byte [ebx], 0x3c
mov al, byte [ebx + 1]
setne cl
mov dword [esp + 0x2c], 0
dec ecx
and ecx, 0x17
add ecx, 0x27
mov dword [esp + 0x1c], ecx
cmp al, 0x2b
je 0x49c1b0
cmp al, 0x2d
je 0x49c1b0
cmp al, 0x30
jb 0x49c19f
cmp al, 0x39
jbe 0x49c1b0
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], 1
jmp 0x49c6f4
mov al, byte [ebx + 2]
lea ecx, [ebx + 2]
cmp al, 0x30
jb 0x49c1cc
lea ebx, [ebx]
cmp al, 0x39
ja 0x49c1cc
mov al, byte [ecx + 1]
inc ecx
cmp al, 0x30
jae 0x49c1c0
mov eax, dword [esp + 0x1c]
cmp byte [ecx], al
jne 0x49d38a
inc ebx
mov dword [esp + 0xc], ebx
mov dl, byte [ebx]
cmp dl, 0x2b
jne 0x49c203
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x30
jb 0x49d2b6
cmp al, 0x39
ja 0x49d2b6
xor ecx, ecx
mov dword [esp + 0x14], ecx
jmp 0x49c22c
mov al, dl
cmp dl, 0x2d
jne 0x49c222
mov al, byte [ebx + 1]
lea ecx, [ebx + 1]
sub al, 0x30
cmp al, 9
ja case.0x49b788.46
mov ebx, ecx
mov dword [esp + 0xc], ebx
mov al, byte [ecx]
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp al, 0x30
jb 0x49c25b
mov al, byte [ebx]
mov edi, edi
cmp al, 0x39
ja 0x49c25b
cmp ecx, 0xccccccb
jg 0x49d346
movzx eax, al
lea ecx, [ecx + ecx*4]
inc ebx
lea ecx, [ecx - 0x18]
mov dword [esp + 0xc], ebx
lea ecx, [eax + ecx*2]
mov al, byte [ebx]
mov dword [esp + 0x14], ecx
cmp al, 0x30
jae 0x49c230
mov eax, dword [esp + 0x1c]
cmp byte [ebx], al
jne 0x49c047
cmp dl, 0x2d
jne 0x49c682
test ecx, ecx
je 0x49d376
mov edx, dword [edi + 0x40]
sub edx, ecx
inc edx
mov dword [esp + 0x14], edx
test edx, edx
jg 0x49c8a2
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xf
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0x30]
xor eax, eax
lea ecx, [esp + 0xfc]
xor edx, edx
mov dword [esp + 0x100], eax
cmp byte [ebx], 0x29
mov dword [esp + 0xfc], edx
je 0x49c33c
mov al, byte [ebx]
cmp al, 0x3a
je 0x49c32e
movzx eax, al
inc ebx
sub eax, 0x2d
mov dword [esp + 0xc], ebx
cmp eax, 0x4b
ja case.0x49c2eb.46
movzx eax, byte [eax + 0x49d6ec]
jmp dword [eax*4 + 0x49d6c8]
lea ecx, [esp + 0x100]
jmp 0x49c329
or dword [ecx], 0x80000
or dword [esi + 0x64], 0x400
jmp 0x49c329
or dword [ecx], 1
jmp 0x49c329
or dword [ecx], 2
jmp 0x49c329
or dword [ecx], 4
jmp 0x49c329
or dword [ecx], 8
jmp 0x49c329
or dword [ecx], 0x200
jmp 0x49c329
or dword [ecx], 0x40
cmp byte [ebx], 0x29
jne 0x49c2c6
mov edx, dword [esp + 0xfc]
mov eax, dword [esp + 0x100]
or edx, dword [esp + 0x40]
not eax
and edx, eax
cmp byte [ebx], 0x29
jne 0x49c399
mov eax, edx
mov dword [esp + 0x40], edx
shr eax, 9
and eax, 1
mov dword [esp + 0x38], 0
mov dword [esp + 0x104], eax
xor eax, 1
mov dword [esp + 0x108], eax
mov eax, edx
and eax, 1
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov edx, dword [esp + 0x10]
inc ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov ecx, 0x83
mov dword [esp + 0x34], 0
inc ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc], ebx
lea edi, [esi + 0x20]
jmp 0x49bc15
mov ebx, dword [edi]
sub ebx, dword [esi + 0x10]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x38], eax
mov dword [esp + 0x58], ebx
mov byte [eax], cl
mov edi, dword [esi + 0x68]
mov esi, dword [esi + 0x40]
mov dword [esp + 0x54], eax
mov dword [esp + 0xac], 0
cmp ecx, 0x7f
je 0x49c3f0
cmp ecx, 0x80
je 0x49c3f0
xor ecx, ecx
jmp 0x49c3f5
mov ecx, 1
mov eax, dword [ebp + 0x34]
lea ebx, [esp + 0xac]
neg eax
sbb eax, eax
and eax, ebx
mov ebx, dword [esp + 0x14]
push eax
push dword [ebp + 0x30]
lea eax, [esp + 0xb8]
push dword [ebp + 0x28]
push eax
lea eax, [esp + 0x100]
push eax
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x124]
push eax
xor eax, eax
cmp ebx, 0x87
sete al
add eax, dword [ebp + 0x2c]
push eax
push dword [esp + 0x4c]
lea eax, [esp + 0x30]
push dword [esp + 0x58]
push ecx
push dword [ebp + 0x14]
push eax
lea eax, [esp + 0x88]
push eax
push edx
call fcn.00495550
add esp, 0x3c
test eax, eax
je 0x49987b
mov eax, dword [ebp + 0x30]
dec dword [eax + 0x58]
cmp ebx, 0x81
jne 0x49c504
cmp dword [eax + 0x40], esi
ja 0x49c487
mov eax, dword [esp + 0x10]
mov byte [eax], 0x82
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xb8]
mov eax, dword [esp + 0xb0]
mov ebx, dword [esp + 0xc]
cmp byte [ebx], 0x29
jne 0x49d318
mov esi, dword [ebp + 0x34]
test esi, esi
je 0x49c58e
mov edx, dword [esi]
mov esi, dword [esp + 0xac]
mov ecx, dword [esp + 0xa4]
sub ecx, edx
lea eax, [esi - 6]
cmp ecx, eax
jl 0x49d113
mov ecx, dword [ebp + 0x34]
lea eax, [esi - 6]
mov esi, dword [esp + 0x20]
add eax, edx
mov edi, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 1], 0x780300
lea edx, [eax + 6]
mov byte [eax + 5], 3
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
jmp 0x498f18
cmp ebx, 0x80
ja 0x49c514
dec dword [eax + 0x5c]
jmp 0x49c487
cmp ebx, 0x87
jne 0x49c487
cmp dword [ebp + 0x34], 0
jne 0x49c487
mov ebx, dword [esp + 0x10]
xor esi, esi
mov edx, ebx
movzx ecx, byte [edx + 1]
inc esi
movzx eax, byte [edx + 2]
shl ecx, 8
or ecx, eax
add edx, ecx
cmp byte [edx], 0x78
jne 0x49c532
cmp byte [ebx + 3], 0x91
jne 0x49c560
cmp esi, 1
jg 0x49d2e2
mov edx, 0x91
jmp 0x49c48b
cmp esi, 2
jg 0x49d2fd
cmp esi, 1
jne 0x49c487
mov edx, dword [esp + 0x14]
or eax, 0xffffffff
or ecx, eax
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb8], ecx
jmp 0x49c499
mov esi, dword [esp + 0x54]
mov dword [esp + 0x10], esi
cmp edx, 0x91
je 0x49c383
mov esi, dword [esp + 0x74]
mov dword [esp + 0x64], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0x44]
mov dword [esp + 0x78], esi
mov dword [esp + 0xc0], 0
cmp edx, 0x81
jb 0x49c66d
cmp esi, 0xfffffffe
jne 0x49c61f
test ecx, ecx
js 0x49c60d
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0xc0], 1
mov dword [esp + 0x78], 0xffffffff
jmp 0x49c640
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
jmp 0x49c640
test ecx, ecx
js 0x49c640
test eax, eax
jns 0x49c648
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xf0], eax
mov eax, ecx
or eax, edi
mov dword [esp + 0xb0], eax
test eax, eax
js 0x49c383
mov ecx, dword [esp + 0xf0]
inc ebx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0xc], ebx
jmp 0x498f18
cmp edx, 0x7d
jne 0x49c383
test eax, eax
js 0x49c383
test ecx, ecx
jmp 0x49c642
cmp dl, 0x2b
mov edx, dword [esp + 0x14]
jne 0x49c8a2
test edx, edx
je 0x49d376
add edx, dword [edi + 0x40]
mov dword [esp + 0x14], edx
jmp 0x49c8a2
cmp edx, 0x1c
jne 0x49cb7e
mov ebx, dword [esp + 0xc]
mov cl, byte [ebx + 1]
lea eax, [ebx + 1]
cmp cl, 0x3c
je 0x49c6c9
cmp cl, 0x27
je 0x49c6c9
cmp cl, 0x7b
jne 0x49d39e
mov dword [esp + 0xc], eax
mov ebx, eax
mov cl, byte [eax]
mov dword [esp + 0x30], 0
cmp cl, 0x3c
jne 0x49c6e5
mov edx, 0x3e
jmp 0x49c6f4
xor edx, edx
cmp cl, 0x27
setne dl
dec edx
and edx, 0xffffffaa
add edx, 0x7d
inc ebx
mov dword [esp + 0xc], ebx
mov esi, ebx
mov dword [esp + 0x9c], esi
mov al, byte [ebx]
cmp al, 0x30
jb 0x49c710
cmp al, 0x39
jbe 0x49d3b2
mov ecx, dword [edi + 0xc]
movzx eax, al
test byte [eax + ecx], 0x10
je 0x49c72e
lea esp, [esp]
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
test byte [eax + ecx], 0x10
jne 0x49c720
mov edi, ebx
sub edi, esi
cmp dword [ebp + 0x34], 0
je 0x49c815
xor ecx, ecx
mov dword [esp + 0x14], ecx
test edi, edi
je 0x49d3f7
cmp byte [ebx], dl
jne 0x49d3e0
cmp edi, 0x20
jg 0x49d3c9
cmp dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x30]
jne 0x49c767
inc dword [ecx + 0x54]
mov edx, dword [ebp + 0x34]
mov eax, dword [edx]
add eax, 0xe
mov dword [edx], eax
cmp dword [ecx + 0x7c], 0
je 0x49c77c
add eax, 0xc
mov dword [edx], eax
mov esi, dword [ecx + 0x28]
xor eax, eax
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x48], ecx
test ecx, ecx
jle 0x49c804
mov ebx, dword [esp + 0x9c]
jmp 0x49c7a0
cmp edi, dword [esi + 4]
jne 0x49c7ed
push edi
push dword [esi]
push ebx
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49c7ed
mov edx, dword [esi + 8]
mov dword [esp + 0x14], edx
cmp dword [esp + 0x30], eax
jne 0x49c89f
mov ecx, dword [ebp + 0x30]
mov ecx, dword [ecx + 0x24]
test ecx, ecx
je 0x49c7ed
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x49c7e4
mov ecx, dword [ecx]
test ecx, ecx
jne 0x49c7d4
jmp 0x49c7ed
mov eax, 1
mov word [ecx + 6], ax
mov ecx, dword [ebp + 0x30]
add esi, 0xc
inc dword [esp + 0x1c]
mov ecx, dword [ecx + 0x30]
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x1c], ecx
jl 0x49c7a0
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x70]
jmp 0x49c894
mov ecx, dword [ebp + 0x30]
xor eax, eax
mov dword [esp + 0x1c], eax
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x70], edx
cmp dword [ecx + 0x30], eax
jle 0x49c86d
mov ebx, edx
push edi
lea eax, [ebx + 2]
push eax
push esi
call fcn.0050a3c0
add esp, 0xc
test eax, eax
jne 0x49c848
cmp byte [ebx + edi + 2], al
je 0x49c862
mov ecx, dword [ebp + 0x30]
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
add ebx, dword [ecx + 0x34]
mov dword [esp + 0x70], ebx
cmp eax, dword [ecx + 0x30]
jl 0x49c830
jmp 0x49c865
mov ecx, dword [ebp + 0x30]
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x70]
mov ecx, dword [ecx + 0x30]
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x48], ecx
cmp edi, ecx
jge 0x49c28a
mov esi, dword [esp + 0x70]
movzx edx, byte [edx]
shl edx, 8
movzx eax, byte [esi + 1]
or edx, eax
mov dword [esp + 0x14], edx
cmp dword [esp + 0x30], 0
je 0x49ca04
mov edi, dword [ebp + 0x30]
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
cmp dword [ebp + 0x34], 0
mov ecx, dword [esp + 0x10]
mov ebx, dword [edi + 0x14]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x58], eax
jne 0x49c93f
mov byte [ecx], 0
test edx, edx
je 0x49c8de
push edx
push dword [esp + 0x50]
push dword [edi + 0x14]
call fcn.00495350
mov edx, dword [esp + 0x20]
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x49c99e
cmp edx, dword [edi + 0x44]
jg 0x49d40e
mov eax, dword [edi + 0x3c]
mov ebx, dword [edi + 0x14]
add eax, 0xffffff9c
add eax, dword [edi + 0x10]
add ebx, edx
cmp dword [edi + 0x20], eax
jb 0x49c918
push edi
call fcn.00495a20
mov ecx, dword [ebp + 0x14]
add esp, 4
mov dword [ecx], eax
test eax, eax
jne 0x49987b
mov edx, dword [esp + 0x10]
mov ecx, edx
sub ecx, dword [edi + 0x14]
mov eax, dword [edi + 0x20]
inc ecx
sar ecx, 8
mov byte [eax], cl
mov cl, dl
sub cl, byte [edi + 0x14]
mov eax, dword [edi + 0x20]
inc cl
mov byte [eax + 1], cl
add dword [edi + 0x20], 2
mov ecx, dword [esp + 0x10]
mov byte [ecx], 0x75
mov eax, ebx
sub eax, dword [edi + 0x14]
sar eax, 8
mov byte [ecx + 1], al
sub bl, byte [edi + 0x14]
mov byte [ecx + 2], bl
add ecx, 3
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc0], 0
cmp ecx, 0xfffffffe
jne 0x49c975
or ecx, 0xffffffff
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0x7c]
inc ebx
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0xc], ebx
jmp 0x498f18
movzx ecx, byte [ebx + 1]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
jne 0x49c93b
cmp dword [ebp + 0x2c], ecx
jg 0x49c93b
mov eax, dword [ebp + 0x28]
mov esi, eax
test eax, eax
je 0x49c9e9
jmp 0x49c9c0
mov eax, dword [esi + 4]
cmp eax, ebx
jb 0x49c9e9
push 0
push edi
push dword [esp + 0x54]
push dword [esp + 0x1c]
push eax
call fcn.00496930
add esp, 0x14
test eax, eax
je 0x49c93b
mov esi, dword [esi]
test esi, esi
jne 0x49c9c0
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x28
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x34], 0
jne 0x49cb8e
mov eax, dword [ebp + 0x30]
cmp dword [eax + 0x78], 0
je 0x49cb93
add esi, dword [eax + 0x34]
mov ebx, 1
mov dword [esp + 0x90], edi
inc edi
mov dword [esp + 0x30], esi
cmp edi, ecx
jge 0x49cb93
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x48]
add eax, 2
mov edx, dword [esp + 0x30]
mov dword [esp + 0x9c], eax
lea ecx, [ecx]
lea ecx, [edx + 2]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x49ca73
test dl, dl
je 0x49ca6f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x49ca73
add eax, 2
add ecx, 2
test dl, dl
jne 0x49ca53
xor eax, eax
jmp 0x49ca78
sbb eax, eax
or eax, 1
mov edx, dword [esp + 0x30]
test eax, eax
jne 0x49ca97
mov eax, dword [ebp + 0x30]
inc edi
inc ebx
add edx, dword [eax + 0x34]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x30], edx
cmp edi, esi
jl 0x49ca50
cmp ebx, 1
jle 0x49cb8a
cmp dword [esp + 0x44], 0xfffffffe
jne 0x49caaf
mov dword [esp + 0x44], 0xffffffff
mov edi, dword [ebp + 0x30]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x38], ecx
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
test byte [esp + 0x40], 1
mov dword [esp + 0x58], eax
setne al
add al, 0x73
mov byte [ecx], al
mov ecx, dword [esp + 0x90]
mov eax, ecx
shr eax, 8
mov byte [esi + 1], al
mov eax, esi
mov byte [eax + 4], bl
mov byte [eax + 2], cl
lea ecx, [eax + 3]
mov eax, ebx
mov ebx, dword [esp + 0x70]
sar eax, 8
mov byte [ecx], al
lea eax, [ecx + 2]
mov dword [esp + 0x10], eax
cmp ebx, edx
jae 0x49936e
mov esi, dword [esp + 0x30]
lea esp, [esp]
movzx edx, byte [ebx]
movzx eax, byte [ebx + 1]
shl edx, 8
or edx, eax
mov eax, 1
cmp edx, 0x20
jae 0x49cb2a
mov ecx, edx
shl eax, cl
or dword [edi + 0x50], eax
cmp edx, dword [edi + 0x4c]
jle 0x49cb35
mov dword [edi + 0x4c], edx
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x49cb59
lea esp, [esp]
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x49cb50
mov ecx, dword [ecx]
test ecx, ecx
jne 0x49cb40
jmp 0x49cb59
mov eax, 1
mov word [ecx + 6], ax
add ebx, dword [edi + 0x34]
cmp ebx, esi
jb 0x49cb10
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0xc], ebx
jmp 0x498f18
test edx, edx
jns 0x49cc56
neg edx
jmp 0x49cb9d
mov edx, dword [esp + 0x14]
mov edi, dword [ebp + 0x30]
jmp 0x49cb95
mov edi, eax
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
cmp ecx, 0xfffffffe
jne 0x49cbb2
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
test bl, 1
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], eax
setne al
add al, 0x71
mov dword [esp + 0x38], ecx
mov byte [ecx], al
mov eax, edx
sar eax, 8
mov byte [ecx + 1], al
mov byte [ecx + 2], dl
add ecx, 3
mov dword [esp + 0x10], ecx
cmp edx, 0x20
jge 0x49cbf2
mov ebx, 1
mov ecx, edx
mov eax, ebx
shl eax, cl
jmp 0x49cbf9
mov eax, 1
mov ebx, eax
or dword [edi + 0x50], eax
cmp edx, dword [edi + 0x4c]
jle 0x49cc04
mov dword [edi + 0x4c], edx
mov ecx, dword [edi + 0x24]
test ecx, ecx
je 0x49936e
nop
movzx eax, word [ecx + 4]
cmp eax, edx
je 0x49cc38
mov ecx, dword [ecx]
test ecx, ecx
jne 0x49cc10
mov ebx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
inc ebx
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov word [ecx + 6], bx
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0xc], ebx
jmp 0x498f18
cmp edx, 0xf
je 0x49cd03
cmp edx, 0x10
je 0x49cd03
cmp edx, 5
je 0x49cc77
cmp edx, 4
je 0x49cc77
cmp edx, 1
jne 0x49cc84
cmp dword [edi + 0x48], 0
jne 0x49cc84
mov dword [edi + 0x48], 1
lea ebx, [edx - 0x1d]
cmp ebx, 5
ja 0x49ccaf
mov ebx, dword [ebx*4 + 0xd91270]
mov edi, dword [esp + 0xc]
dec ebx
mov edx, dword [esp + 0x10]
inc edi
mov esi, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov esi, dword [edi + 0x20]
lea eax, [edx - 6]
mov ecx, 0x10
cmp ecx, eax
mov eax, dword [esp + 0x10]
sbb ecx, ecx
sub esi, dword [edi + 0x10]
not ecx
mov dword [esp + 0x58], esi
and ecx, eax
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x38], ecx
jne 0x49cce2
cmp edx, 0xe
jne 0x49cce2
mov edx, 0xd
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov byte [eax], dl
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
inc edx
inc ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
jmp 0x498f18
push esi
lea eax, [esp + 0x118]
mov dword [esp + 0x114], 0
push eax
lea eax, [esp + 0x118]
mov dword [esp + 0x11c], 0
push eax
lea eax, [esp + 0x130]
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00496350
add esp, 0x14
test eax, eax
je 0x49987b
mov esi, dword [edi + 0x20]
xor eax, eax
sub esi, dword [edi + 0x10]
cmp dword [esp + 0x14], 0x10
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x24]
sete al
cmp eax, dword [esp + 0x124]
mov dword [esp + 0x38], edx
setne al
mov dword [esp + 0x58], esi
mov esi, dword [esp + 0x20]
add al, 0xf
mov byte [edx], al
movzx eax, byte [esp + 0x110]
mov byte [edx + 1], al
movzx eax, byte [esp + 0x114]
mov byte [edx + 2], al
add edx, 3
mov ebx, dword [esp + 0xc]
inc ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ebx
jmp 0x498f18
mov edx, dword [esp + 0x14]
mov edi, dword [ebp + 0x30]
jmp 0x49cdb1
mov ecx, dword [esp + 0x10]
cmp dword [esp + 0x4c], 0
mov esi, 1
mov byte [esp + 0x80], dl
je 0x49a445
cmp edx, 0xc0
jb 0x49a445
mov al, byte [ebx + 1]
and al, 0xc0
cmp al, 0x80
jne 0x49a445
inc ebx
mov dword [esp + 0xc], ebx
movzx eax, byte [ebx]
mov byte [esp + esi + 0x80], al
inc esi
movzx eax, byte [ebx + 1]
and al, 0xc0
cmp al, 0x80
je 0x49cde1
mov eax, dword [edi + 0x20]
sub eax, dword [edi + 0x10]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x58], eax
jmp 0x49a45e
movzx ecx, byte [esp + 0x81]
movzx eax, byte [esp + 0x82]
and ecx, 0x3f
test dl, 0x10
jne 0x49ce33
and edx, 0xf
shl edx, 6
or edx, ecx
jmp 0x49ceb6
and eax, 0x3f
test dl, 8
jne 0x49ce55
and edx, 7
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x83]
jmp 0x49ceb6
test dl, 4
jne 0x49ce81
and edx, 3
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x83]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x84]
jmp 0x49ceb6
and edx, 1
shl edx, 6
or edx, ecx
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x83]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x84]
and eax, 0x3f
shl edx, 6
or edx, eax
movzx eax, byte [esp + 0x85]
and eax, 0x3f
shl edx, 6
or edx, eax
mov eax, edx
test eax, eax
jns 0x49cec7
add eax, 0x7f
sar eax, 7
movzx eax, byte [eax + 0x55e200]
shl eax, 7
and edx, 0x8000007f
jns 0x49cee1
dec edx
or edx, 0xffffff80
inc edx
add eax, edx
movzx eax, word [eax*2 + 0x560400]
movzx ecx, byte [eax*8 + 0x55cb83]
test ecx, ecx
je 0x49cf37
cmp dword [esp + 0x44], 0xfffffffe
lea edx, [ebx + 3]
mov word [ebx], 0x910
mov byte [ebx + 2], cl
mov dword [esp + 0x10], edx
jne 0x49d033
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x78], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0xc], ebx
jmp 0x498f18
test byte [esp + 0x40], 1
mov edx, dword [esp + 0x10]
setne al
add al, 0x1d
xor ecx, ecx
mov byte [edx], al
inc edx
mov dword [esp + 0x10], edx
test esi, esi
je 0x49cf65
mov al, byte [esp + ecx + 0x80]
inc ecx
mov byte [edx], al
inc edx
cmp ecx, esi
jb 0x49cf52
mov dword [esp + 0x10], edx
mov al, byte [esp + 0x80]
cmp al, 0xd
je 0x49cf74
cmp al, 0xa
jne 0x49cf7b
or dword [edi + 0x64], 0x800
mov ecx, dword [esp + 0x44]
cmp ecx, 0xfffffffe
jne 0x49cfef
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x78], 0xffffffff
cmp esi, 1
je 0x49cfd6
test ecx, ecx
je 0x49cfd6
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0x5c], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
mov dword [esp + 0xc], ebx
jmp 0x498f18
movzx eax, al
mov dword [esp + 0x7c], eax
mov dword [esp + 0x44], ecx
cmp esi, 1
je 0x49d033
mov eax, dword [edi + 0x68]
jmp 0x49d027
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
cmp esi, 1
je 0x49d01d
cmp dword [esp + 0xb4], 0
jne 0x49d033
mov eax, dword [edi + 0x68]
or eax, dword [esp + 0xb4]
movzx ecx, byte [edx - 1]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x74], ecx
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
inc ebx
mov edi, dword [esp + 0x24]
mov dword [esp + 0xc], ebx
jmp 0x498f18
cmp edx, ecx
mov ecx, dword [ebp + 0x14]
sbb eax, eax
and eax, 0x23
add eax, 0x34
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x40
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1f
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [ecx], 7
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [ecx], 0x47
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [edi], 0x53
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [edi], 8
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
xor eax, eax
cmp byte [ebx + 1], 0x3a
setne al
dec eax
and eax, 0xffffffee
add eax, 0x1f
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0xc]
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x14
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov dword [ecx], 9
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x4b
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x42
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x3b
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x1c
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x30
jb 0x49d35f
mov al, byte [ebx]
nop
cmp al, 0x39
ja 0x49d35f
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x30
jae 0x49d1b0
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3d
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x23
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
inc ebx
mov dword [eax], 0x18
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x26
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x27
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x29
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x2b
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x41
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x15
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x31
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [esi], 0x3f
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
dec ebx
mov dword [eax], 0xc
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x36
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [eax], 0x1b
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0xe
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x52
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x30
jb 0x49d35f
mov al, byte [ebx]
lea esp, [esp]
cmp al, 0x39
ja 0x49d35f
inc ebx
mov dword [esp + 0xc], ebx
mov al, byte [ebx]
cmp al, 0x30
jae 0x49d350
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3d
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [esi], 0x3a
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [esi], 0x39
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x10]
mov dword [esi], 0x45
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x54
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x30
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x2a
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x3e
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0xc]
jmp 0x49c28a
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0x7c]
mov esi, dword [ebp + 0x34]
mov dword [eax], edx
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0x44]
mov dword [eax], edx
mov eax, dword [ebp + 0x20]
mov edx, dword [esp + 0x74]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
mov edx, dword [esp + 0x5c]
mov dword [eax], edx
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
test esi, esi
je 0x49d477
mov edx, dword [esp + 0x10]
mov eax, edx
mov ecx, dword [esi]
mov edi, dword [esp + 0xbc]
sub eax, edi
sub dword [esp + 0xa4], ecx
cmp dword [esp + 0xa4], eax
jl 0x49d113
sub ecx, edi
add ecx, edx
mov dword [esi], ecx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x14]
mov dword [eax], 0x34
mov eax, dword [ebp + 0x10]
pop edi
pop esi
mov dword [eax], ebx
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret