Function at 0x453ec0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push ebx
sub esp, 0x6dc
mov edi, dword [ebp + 8]
mov eax, dword [0x4f195c]
xor eax, ebp
mov esi, dword [edi + 4]
mov dword [ebp - 0x10], eax
test esi, esi
je 0x457483
xor ecx, ecx
mov dword [ebp - 0x61c], ecx
mov dword [ebp - 0x638], ecx
lea eax, [esi + 0x98]
mov ebx, dword [esi + 0x6c]
mov dword [ebp - 0x624], 1
mov dword [ebp - 0x62c], ecx
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x634], ecx
mov dword [ebp - 0x628], ecx
mov dword [ebp - 0x620], edi
test byte [esi + 0x198], 0x20
jne 0x457372
mov ecx, dword [ebx + 0x14]
cmp ecx, 1
jle 0x453fec
movzx edx, byte [ebx + 0xbb]
lea eax, [ecx - 1]
mov dword [ebp - 0x63c], eax
mov dword [ebx + 0x14], eax
test dl, 0x10
je 0x45404b
test dl, 0x20
je 0x45404b
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x65c], eax
movsx eax, byte [eax]
cmp eax, 0x41
jne 0x453f88
mov edx, dword [ebp - 0x65c]
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
movsx eax, byte [eax]
movzx edx, byte [ebx + 0xbb]
cmp eax, 2
je 0x454fcc
and edx, 0xffffffdf
cmp eax, 1
je 0x454fa4
and edx, 0xffffffbf
mov byte [ebx + 0xbb], dl
push esi
mov dword [ebp - 0x658], ecx
call fcn.0046e8c0
mov ecx, dword [ebp - 0x658]
add esp, 4
test eax, eax
jne 0x454f20
movzx edx, byte [ebx + 0xbb]
test dl, 0x10
je 0x453fd8
test dl, 0x20
jne 0x454fee
mov eax, dword [ebp - 0x63c]
mov dword [ebx + 0x14], eax
or edx, 0x20
mov byte [ebx + 0xbb], dl
jmp 0x45404b
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
cmp eax, 0x41
jne 0x454000
lea eax, [edx + 2]
mov dword [ebp + 0xc], eax
movsx eax, byte [eax]
cmp eax, 2
je 0x457349
movzx edx, byte [ebx + 0xbb]
and edx, 0xffffffdf
cmp eax, 1
je 0x457321
and edx, 0xffffffbf
mov byte [ebx + 0xbb], dl
push esi
call fcn.0046e8c0
add esp, 4
test eax, eax
jne 0x457295
movzx edx, byte [ebx + 0xbb]
test dl, 0x10
je 0x45404b
test dl, 0x20
jne 0x457274
movsx eax, byte [ebx + 0xb4]
lea ecx, [eax - 0xf]
cmp ecx, 0xd
ja 0x45413b
movzx eax, word [ecx*2 + 0x4c7504]
add eax, 0x453f23
jmp eax
cmp eax, 2
je 0x454b28
cmp dword [ebp - 0x624], 1
jle 0x454278
mov eax, dword [ebp - 0x304]
add eax, 0xfffffff9
cmp eax, 1
ja 0x45424c
cmp dword [ebp - 0x61c], 0
je 0x45418d
mov eax, dword [ebp - 0x648]
add dword [ebp - 0x654], eax
dec dword [ebp - 0x624]
mov dword [ebp - 0x61c], 0
jmp 0x454542
xor eax, eax
cmp dword [ebp - 0x62c], 0
mov edx, dword [ebp - 0x300]
setne al
mov dword [ebp - 0x61c], eax
mov dword [ebp - 0x67c], edx
test edx, edx
jle 0x454224
mov edi, edx
mov ecx, edi
shr ecx, 0x1f
xor edx, edx
add ecx, edi
sar ecx, 1
test ecx, ecx
jbe 0x4550ff
xor eax, eax
mov edi, dword [ebp + eax*8 - 0x184]
sub edi, dword [ebp + eax*8 - 0x108]
imul edi, dword [ebp + eax*8 - 0x8c]
add edx, edi
mov edi, dword [ebp + eax*8 - 0x180]
sub edi, dword [ebp + eax*8 - 0x104]
imul edi, dword [ebp + eax*8 - 0x88]
inc eax
add edx, edi
cmp eax, ecx
jb 0x4541c6
lea ecx, [eax + eax + 1]
lea eax, [ecx - 1]
cmp eax, dword [ebp - 0x67c]
jae 0x454226
mov eax, dword [ebp + ecx*4 - 0x188]
sub eax, dword [ebp + ecx*4 - 0x10c]
imul eax, dword [ebp + ecx*4 - 0x90]
add edx, eax
jmp 0x454226
xor edx, edx
add edx, dword [ebp - 0x2fc]
lea eax, [ebp - 0x304]
mov dword [ebp - 0x654], edx
lea edx, [ebp - 0x184]
push eax
push edx
push 0
call fcn.0046f750
add esp, 0xc
jmp 0x45426d
mov eax, dword [ebp - 0x61c]
test eax, eax
mov edi, dword [ebp - 0x648]
je 0x454261
mov eax, 0
add dword [ebp - 0x654], edi
mov dword [ebp - 0x61c], eax
dec dword [ebp - 0x624]
jmp 0x454535
lea eax, [ebp - 0x304]
push eax
lea edx, [ebp - 0x654]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea edi, [ebp + 0xc]
push edi
call fcn.0046d580
add esp, 0x10
test eax, eax
jne 0x456f0d
mov eax, dword [ebp - 0x64c]
cmp eax, 2
je 0x456ee5
cmp eax, 1
je 0x454c08
cmp eax, 0x41
je 0x456e32
mov edx, dword [ebp - 0x304]
lea eax, [edx - 7]
cmp eax, 1
ja 0x4544a9
mov ecx, dword [ebp - 0x648]
test ecx, ecx
je 0x4542ec
mov eax, dword [ebp - 0x650]
cdq
idiv ecx
mov dword [ebp - 0x624], eax
jmp 0x454305
test byte [esi + 0x18c], 2
je 0x4544ec
mov eax, dword [ebp - 0x650]
mov dword [ebp - 0x624], eax
cmp dword [ebp - 0x624], 0
je 0x4544f6
mov edx, dword [ebp - 0x64c]
lea eax, [edx - 0x1c]
cmp eax, 0x10
jbe 0x454331
cmp edx, 0x34
je 0x454331
mov dword [ebp - 0x62c], 0
jmp 0x454342
mov eax, 1
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x61c], eax
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x694], eax
test eax, eax
jle 0x45447e
mov edx, eax
shr edx, 0x1f
add edx, eax
sar edx, 1
mov dword [ebp - 0x690], edx
test edx, edx
jbe 0x455113
mov dword [ebp - 0x640], esi
xor ecx, ecx
lea esi, [esi]
lea edi, [edi]
lea eax, [ecx + ecx*2]
mov esi, dword [ebp + eax*8 - 0x2f0]
mov dword [ebp + ecx*8 - 0x8c], esi
mov edi, dword [ebp + eax*8 - 0x2f4]
mov esi, dword [ebp + eax*8 - 0x2e8]
mov eax, dword [ebp + eax*8 - 0x2e4]
mov dword [ebp + ecx*8 - 0x108], edi
mov dword [ebp + ecx*8 - 0x184], edi
mov dword [ebp + ecx*8 - 0x104], esi
mov dword [ebp + ecx*8 - 0x88], eax
mov dword [ebp + ecx*8 - 0x180], esi
inc ecx
cmp ecx, edx
jb 0x454380
mov esi, dword [ebp - 0x640]
lea eax, [ecx + ecx + 1]
lea edx, [eax - 1]
cmp edx, dword [ebp - 0x694]
jae 0x454409
lea edx, [eax + eax*2]
mov edi, dword [ebp + edx*4 - 0x300]
mov ecx, dword [ebp + edx*4 - 0x2fc]
mov dword [ebp + eax*4 - 0x10c], edi
mov dword [ebp + eax*4 - 0x90], ecx
mov dword [ebp + eax*4 - 0x188], edi
xor eax, eax
cmp dword [ebp - 0x690], 0
jbe 0x455109
mov ecx, dword [ebp - 0x690]
xor edx, edx
mov edi, dword [ebp + edx*8 - 0x184]
sub edi, dword [ebp + edx*8 - 0x108]
imul edi, dword [ebp + edx*8 - 0x8c]
add eax, edi
mov edi, dword [ebp + edx*8 - 0x180]
sub edi, dword [ebp + edx*8 - 0x104]
imul edi, dword [ebp + edx*8 - 0x88]
inc edx
add eax, edi
cmp edx, ecx
jb 0x454420
lea ecx, [edx + edx + 1]
lea edx, [ecx - 1]
cmp edx, dword [ebp - 0x694]
jae 0x454480
mov edx, dword [ebp + ecx*4 - 0x188]
sub edx, dword [ebp + ecx*4 - 0x10c]
imul edx, dword [ebp + ecx*4 - 0x90]
add eax, edx
jmp 0x454480
xor eax, eax
add eax, dword [ebp - 0x2fc]
lea edx, [ebp - 0x304]
push edx
mov dword [ebp - 0x654], eax
lea eax, [ebp - 0x184]
push eax
push 0
call fcn.0046f750
add esp, 0xc
jmp 0x454535
add edx, 0xfffffffb
cmp edx, 1
ja 0x454502
mov ecx, dword [ebp - 0x648]
test ecx, ecx
je 0x4544cc
mov eax, dword [ebp - 0x650]
cdq
idiv ecx
mov dword [ebp - 0x624], eax
jmp 0x4544e1
test byte [esi + 0x18c], 2
je 0x4544ec
mov eax, dword [ebp - 0x650]
mov dword [ebp - 0x624], eax
cmp dword [ebp - 0x624], 0
je 0x4544f6
jmp 0x454535
mov dword [ebp - 0x624], 0
mov dword [ebp - 0x628], 1
jmp 0x45454b
mov edx, dword [ebp - 0x64c]
lea eax, [edx - 0x1c]
cmp eax, 0x10
jbe 0x454521
cmp edx, 0x34
je 0x454521
mov dword [ebp - 0x624], 1
jmp 0x454535
mov dword [ebp - 0x624], 2
mov dword [ebp - 0x61c], 1
cmp dword [ebp - 0x634], 0
jne 0x454a6f
cmp dword [ebp - 0x628], 0
je 0x454567
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x45455e
mov dword [ebx + 0x14], 2
jmp 0x453f23
inc eax
mov dword [ebx + 0x14], eax
jmp 0x453f23
mov ecx, dword [ebp - 0x64c]
mov eax, ecx
and eax, 0xfffffffd
movsx edx, byte [ebx + 0xb4]
cmp eax, 0x40
je 0x455b50
cmp ecx, 0x40
je 0x455a53
cmp ecx, 0x42
je 0x4559a7
lea eax, [ecx - 0x40]
add ecx, 0xffffffbe
or eax, ecx
je 0x4545a7
cmp edx, 0x74
je 0x45590c
mov eax, dword [ebx]
and byte [ebx + 0xbb], 0xf7
movzx ecx, byte [eax + 0x192]
test ecx, 0x80
je 0x4545e5
mov eax, dword [edx*4 + 0x4ce0e0]
test eax, eax
je 0x4545e5
mov ecx, dword [ebp - 0x64c]
movsx eax, byte [eax + ecx]
test eax, eax
je 0x4545e5
mov dword [ebp - 0x64c], eax
movsx edx, byte [ebx + 0xb4]
lea eax, [edx - 0x13]
cmp eax, 0x1e
ja 0x4547f6
movzx eax, word [eax*2 + 0x4c7520]
add eax, 0x454600
jmp eax
mov eax, 0x3d
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, dword [esi + 0x4c]
mov dword [ebp - 0x668], eax
cmp edx, 0x1d
je 0x454815
cmp edx, 0x13
je 0x454815
mov dword [ebp - 0x674], 1
jmp 0x45481f
mov dword [ebp - 0x674], 0
test byte [ebx + 0xbd], 1
jne 0x45483d
cmp byte [esi + 0x187], 2
je 0x45483d
mov dword [ebp - 0x66c], 0x2c
jmp 0x454847
mov dword [ebp - 0x66c], 0x3b
mov eax, dword [ebx + 0xa4]
mov dword [ebp - 0x664], eax
cmp dword [ebp - 0x674], 0
jne 0x454883
mov edi, dword [ebp - 0x668]
mov ecx, dword [esi + 0x54]
mov edx, ecx
sub edx, edi
mov dword [ebp - 0x670], ecx
add edi, eax
cmp edi, ecx
jae 0x454877
mov edx, eax
dec edx
mov dword [ebp - 0x678], edx
jmp 0x454912
cmp dword [ebp - 0x664], 5
jle 0x4548f2
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x670], eax
sub eax, dword [ebp - 0x668]
mov dword [ebp - 0x688], eax
cmp eax, 5
jle 0x454908
mov edi, dword [ebp - 0x668]
mov edx, dword [ebp - 0x664]
mov ecx, eax
lea eax, [edi + edx]
cmp eax, dword [ebp - 0x670]
jae 0x4548c1
mov ecx, edx
dec ecx
mov dword [ebp - 0x688], ecx
push ecx
push dword [ebp - 0x66c]
push edi
call fcn.004aa490
mov edx, eax
add esp, 0xc
sub edx, dword [ebp - 0x668]
test eax, eax
jne 0x4548ea
mov edx, dword [ebp - 0x688]
mov dword [ebp - 0x678], edx
jmp 0x454912
cmp dword [ebp - 0x664], 0
jle 0x4558f9
mov eax, dword [esi + 0x54]
mov dword [ebp - 0x670], eax
mov dword [ebp - 0x678], 0
mov eax, dword [ebp - 0x668]
mov edx, dword [ebp - 0x678]
mov edi, edx
mov dword [ebp - 0x644], ebx
mov dword [ebp - 0x640], esi
mov esi, dword [ebp - 0x664]
add eax, edx
mov ecx, dword [ebp - 0x670]
mov edx, dword [ebp - 0x66c]
mov ebx, dword [ebp - 0x674]
cmp eax, ecx
jae 0x455543
test ebx, ebx
je 0x45495a
cmp dl, byte [eax]
je 0x455178
inc edi
inc eax
cmp edi, esi
jl 0x454946
mov dword [ebp - 0x678], edi
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
mov dword [ebp - 0x684], 0
mov dword [ebp - 0x680], 0
cmp dword [esi + 0x120], 0
jne 0x45499b
mov eax, dword [ebp - 0x678]
mov dword [ebx + 0xa4], eax
mov ecx, dword [ebp - 0x684]
lea eax, [ebp - 0x654]
mov edx, dword [eax - 0x24]
push eax
push dword [ebp - 0x668]
mov eax, dword [eax - 0x2c]
lea edi, [edx + ecx]
add eax, edi
push ebx
mov dword [ebp - 0x680], eax
add dword [esi + 0x124], eax
call fcn.004706a0
add esp, 0xc
test eax, eax
jne 0x455234
mov eax, dword [ebp - 0x680]
add eax, dword [esi + 0x4c]
mov dword [ebp - 0x680], eax
mov dword [esi + 0x4c], eax
cmp dword [esi + 0x60], 0
je 0x455225
mov eax, dword [esi + 0xac]
sub eax, dword [ebp - 0x678]
mov edx, dword [esi + 0x64]
sub eax, dword [ebp - 0x684]
sub edx, dword [ebp - 0x680]
cmp eax, edx
je 0x454a19
mov dword [esi + 0xac], edx
jmp 0x454a1f
mov dword [esi + 0xac], eax
cmp dword [esi + 0x120], 0
jne 0x454a34
mov eax, dword [ebp - 0x664]
mov dword [ebx + 0xa4], eax
cmp dword [ebp - 0x638], 0
je 0x454a5d
push dword [ebp - 0x68c]
call fcn.00460cc0
add esp, 4
test eax, eax
jne 0x455199
mov dword [ebp - 0x638], 0
test byte [esi + 0x198], 2
je 0x453f23
jmp 0x454c08
mov edx, dword [ebp - 0x64c]
lea eax, [edx - 5]
cmp eax, 0xc
ja 0x456d97
mov eax, dword [esi + 0x54]
add edx, 0xfffffffb
sub eax, dword [esi + 0x4c]
jns 0x454a91
mov eax, 0
mov dword [ebp - 0x660], eax
cmp edx, 0xc
ja 0x456d81
movzx eax, byte [edx + 0x4c7560]
add eax, 0x454aaf
jmp eax
mov eax, dword [ebp + 0xc]
movsx eax, byte [eax]
cmp eax, 1
je 0x45725c
cmp eax, 2
je 0x457232
test byte [ebx + 0xba], 0x20
jne 0x454be0
mov edi, dword [ebp - 0x620]
test byte [esi + 0x18c], 2
je 0x454b90
test edx, 0x80
je 0x454b90
push dword [ebp - 0x624]
lea eax, [ebp - 0x304]
push eax
lea edx, [ebp - 0x654]
push edx
lea ecx, [ebp + 0x10]
push ecx
lea eax, [ebp + 0xc]
push eax
call fcn.0046d800
add esp, 0x14
test eax, eax
jne 0x456ff4
mov eax, dword [esi + 0x20]
test eax, eax
je 0x456fcc
test byte [eax + 0x44], 2
je 0x456f99
mov edx, 0x69
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x454bc2
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x69
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push dword [ebp - 0x624]
lea eax, [ebp + 0x10]
push eax
lea edx, [ebp + 0xc]
push edx
call fcn.0046d4a0
add esp, 0xc
cmp eax, 2
je 0x457208
cmp eax, 1
jne 0x454eeb
mov edi, dword [ebp - 0x620]
movzx edx, byte [ebx + 0xbb]
test dl, 2
je 0x454c7f
push dword [ebx + 4]
and edx, 0xfffffffd
mov byte [ebx + 0xbb], dl
call fcn.00460cc0
add esp, 4
test eax, eax
je 0x454c78
mov edx, dword [esi + 0x20]
test edx, edx
je 0x45705c
test byte [edx + 0x44], 2
je 0x45702e
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x454c5f
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov dword [ebx + 4], 0
mov eax, dword [esi + 0x90]
and byte [esi + 0x190], 0xdc
and byte [esi + 0x192], 0xf7
mov dword [ebp - 0x6e8], eax
test eax, eax
je 0x454ca3
cmp byte [eax + 0x1f], 0
jne 0x454ced
mov ebx, dword [esi + 0x60]
test ebx, ebx
jne 0x454cad
mov ebx, dword [esi + 0x54]
mov eax, ebx
cdq
add ebx, dword [esi + 0xd8]
mov ecx, edx
mov eax, dword [esi + 0x48]
adc ecx, dword [esi + 0xdc]
sub ebx, dword [esi + 0xe8]
cdq
sbb ecx, dword [esi + 0xec]
sub ebx, dword [esi + 0x48]
mov dword [esi + 0xd0], ebx
sbb ecx, edx
mov dword [esi + 0xd4], ecx
cmp dword [ebp - 0x638], 0
jne 0x454d17
jmp 0x454d7b
mov eax, dword [esi + 0x4c]
sub eax, dword [esi + 0x48]
mov ecx, dword [esi + 0xd8]
cdq
add ecx, eax
mov dword [esi + 0xd0], ecx
adc edx, dword [esi + 0xdc]
mov dword [esi + 0xd4], edx
cmp dword [ebp - 0x638], 0
je 0x454d84
push dword [ebp - 0x68c]
call fcn.00460cc0
add esp, 4
test eax, eax
je 0x454d6f
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4570ad
test byte [edx + 0x44], 2
je 0x45707f
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x454d56
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, dword [esi + 0x90]
mov dword [ebp - 0x6e8], eax
cmp dword [ebp - 0x6e8], 0
je 0x454dfe
mov eax, dword [ebp - 0x6e8]
cmp byte [eax + 0x1f], 0
je 0x454dfe
test byte [esi + 0x192], 0x10
je 0x454dfe
movsx eax, byte [esi + 0x181]
add eax, 0xfffffffb
cmp eax, 0xc
ja 0x454ed1
movzx eax, byte [eax + 0x4c7570]
add eax, 0x454dbb
jmp eax
test byte [esi + 0x198], 2
je 0x454e57
mov eax, dword [esi + 0x20]
test eax, eax
je 0x457103
test byte [eax + 0x44], 2
je 0x4570d0
mov edx, 0x10c
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x454e39
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x10c
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push dword [esi + 0x118]
call fcn.0045f1b0
add esp, 4
test eax, eax
je 0x454eaf
mov edx, dword [esi + 0x20]
test edx, edx
je 0x457159
test byte [edx + 0x44], 2
je 0x45712b
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x454e96
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov dword [edi + 4], 0
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x30
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
xor eax, eax
push eax
push eax
push esi
call fcn.004787e0
add esp, 0xc
test eax, eax
jne 0x45717c
add dword [esi + 0xb0], 1
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x58], eax
adc dword [esi + 0xb4], 0
and byte [esi + 0x193], 0xfb
jmp 0x453f23
mov edx, dword [esi + 0x20]
test edx, edx
je 0x454f85
test byte [edx + 0x44], 2
je 0x454f5b
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x454f45
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
je 0x454c70
call fcn.004a91cc
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp dword [ebp - 0x61c], 0
jne 0x453f9d
cmp dword [ebp - 0x624], 1
jg 0x453f9d
or edx, 0x40
mov byte [ebx + 0xbb], dl
jmp 0x453fa6
cmp dword [ebp - 0x61c], 0
jne 0x453f91
cmp dword [ebp - 0x624], 1
jg 0x453f91
or edx, 0x20
jmp 0x453f94
mov dword [ebx + 0x14], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
mov ecx, 1
jmp 0x4541ff
mov ecx, 1
jmp 0x454459
mov eax, 1
jmp 0x4543d8
mov dword [ebp - 0x678], edi
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
mov dword [ebp - 0x684], 1
jmp 0x45497c
mov edx, dword [esi + 0x20]
test edx, edx
je 0x455202
test byte [edx + 0x44], 2
je 0x4551d4
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x4551be
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov dword [esi + 0xac], 0
jmp 0x454a1f
mov dword [ebp - 0x6e8], eax
mov eax, dword [esi + 0x90]
mov ecx, edi
test eax, eax
je 0x4552ba
cmp byte [eax + 0x1f], 0
je 0x4552ba
test byte [esi + 0x192], 0x10
je 0x4552ba
movsx eax, byte [esi + 0x181]
add eax, 0xfffffffb
cmp eax, 0xc
ja 0x455417
movzx eax, byte [eax + str.55__]
add eax, 0x455277
jmp eax
mov eax, dword [esi + 0x4c]
add ecx, eax
mov dword [esi + 0x4c], ecx
cmp dword [esi + 0x60], 0
je 0x455534
mov edx, dword [esi + 0xac]
sub edx, dword [ebp - 0x678]
mov eax, dword [esi + 0x64]
sub edx, dword [ebp - 0x684]
sub eax, ecx
cmp edx, eax
je 0x4552ef
mov dword [esi + 0xac], eax
jmp 0x4552f5
mov dword [esi + 0xac], edx
cmp dword [ebp - 0x638], 0
je 0x455356
push dword [ebp - 0x68c]
call fcn.00460cc0
add esp, 4
test eax, eax
je 0x455356
mov edx, dword [esi + 0x20]
test edx, edx
je 0x455463
test byte [edx + 0x44], 2
je 0x455435
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x45533d
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
movzx eax, byte [ebx + 0xbb]
btr eax, 1
jae 0x4553c5
push dword [ebx + 4]
mov byte [ebx + 0xbb], al
call fcn.00460cc0
add esp, 4
test eax, eax
je 0x4553be
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4554b4
test byte [edx + 0x44], 2
je 0x455486
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x4553a5
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov dword [ebx + 4], 0
mov eax, dword [esi + 0x20]
test eax, eax
je 0x45550b
test byte [eax + 0x44], 2
je 0x4554d7
mov edx, dword [ebp - 0x6e8]
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x4553f8
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, dword [ebp - 0x6e8]
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x30
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov eax, dword [ebp - 0x6e8]
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, dword [ebp - 0x6e8]
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov dword [esi + 0xac], 0
jmp 0x4552f5
mov esi, dword [ebp - 0x640]
mov ebx, dword [ebp - 0x644]
mov dword [ebp - 0x678], edi
test byte [esi + 0x192], 2
jne 0x455580
test byte [esi + 0x18c], 2
jne 0x455707
mov eax, dword [esi + 0x90]
mov dword [ebp - 0x680], 1
jmp 0x45567e
mov eax, dword [esi + 0x90]
test eax, eax
je 0x4555a8
cmp byte [eax + 0x1f], 0
je 0x4555a8
cmp dword [ebp - 0x678], 0
jne 0x4555a8
mov dword [ebp - 0x680], 0
jmp 0x455682
mov eax, dword [ebp - 0x664]
lea edx, [ebp - 0x68c]
push edx
push 0
mov dword [edx + 0x54], eax
lea ecx, [eax + 1]
push ecx
call fcn.00460c10
add esp, 0xc
test eax, eax
jne 0x45586d
mov eax, dword [ebp - 0x68c]
mov edx, dword [esi + 0x4c]
cmp eax, edx
ja 0x4555e8
mov ecx, edi
lea edi, [ecx + eax]
cmp edi, edx
ja 0x4555f5
cmp eax, edx
jb 0x455604
mov ecx, dword [ebp - 0x678]
lea edi, [ecx + edx]
cmp eax, edi
jae 0x455604
push dword [ebp - 0x678]
push edx
push eax
call fcn.004a9b70
jmp 0x455611
push dword [ebp - 0x678]
push edx
push eax
call fcn.004a0860
add esp, 0xc
mov edx, dword [ebp - 0x68c]
mov eax, dword [ebp - 0x678]
add edx, eax
neg eax
add eax, dword [ebp - 0x664]
push eax
push 0x20
push edx
call fcn.004a08c0
add esp, 0xc
mov edx, dword [ebp - 0x68c]
mov eax, dword [ebp - 0x664]
mov edi, dword [ebp - 0x678]
neg edi
mov byte [eax + edx], 0
mov eax, dword [esi + 0x120]
add eax, dword [ebx + 0xa4]
mov ecx, dword [ebp - 0x68c]
add eax, edi
mov dword [esi + 0x120], eax
mov dword [ebp - 0x668], ecx
mov eax, dword [esi + 0x90]
mov dword [ebp - 0x680], 0
test eax, eax
je 0x45569d
cmp byte [eax + 0x1f], 0
je 0x45569d
or byte [esi + 0x198], 2
mov eax, dword [ebx + 0xa4]
mov dword [ebp - 0x664], eax
jmp 0x4556a9
mov eax, dword [ebx + 0xa4]
mov dword [ebp - 0x664], eax
mov dword [ebp - 0x684], 0
cmp dword [ebp - 0x680], 0
je 0x454986
mov eax, dword [esi + 0x54]
mov edx, dword [esi + 0x4c]
mov dword [ebp - 0x680], eax
cmp eax, edx
jbe 0x4556e0
sub eax, edx
mov dword [ebp - 0x680], eax
mov dword [ebx + 0xa4], eax
jmp 0x4556f4
mov dword [ebx + 0xa4], 0
mov dword [ebp - 0x680], 0
xor eax, eax
mov dword [ebp - 0x678], eax
mov dword [ebp - 0x684], eax
jmp 0x45499b
mov eax, dword [esi + 0x90]
test eax, eax
je 0x455767
cmp byte [eax + 0x1f], 0
je 0x455767
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4557ea
test byte [eax + 0x44], 2
je 0x4557b7
mov edx, 0x10c
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x455749
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x10c
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, dword [esi + 0x20]
test eax, eax
je 0x455845
test byte [eax + 0x44], 2
je 0x455812
mov edx, 0x43
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x455799
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x43
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, 0x10c
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x10c
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov eax, 0x43
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x43
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4558d6
test byte [edx + 0x44], 2
je 0x4558a8
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x455892
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
xor eax, eax
mov dword [ebp - 0x684], eax
mov dword [ebp - 0x678], eax
jmp 0x45497c
mov eax, dword [esi + 0x20]
test eax, eax
je 0x45597f
test byte [eax + 0x44], 2
je 0x45594c
mov edx, 0x3d
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x455936
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x4547a0
mov eax, 0x3d
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x3d
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp edx, 0x74
je 0x45590c
mov eax, dword [esi + 0x20]
test eax, eax
je 0x455a2b
test byte [eax + 0x44], 2
je 0x4559f8
mov edx, 0x7d
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x4559da
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x7d
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
mov eax, 0x7d
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x7d
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp edx, 0x74
je 0x454594
lea edx, [ebp + 0xc]
lea ecx, [ebp + 0x10]
lea eax, [ebp - 0x304]
lea edi, [ebp - 0x654]
mov dword [ebp - 0x644], ebx
mov ebx, eax
mov dword [ebp - 0x640], esi
mov esi, edx
push ebx
push edi
lea ecx, [ebp + 0x10]
push ecx
push esi
call fcn.0046d580
add esp, 0x10
test eax, eax
jne 0x455abe
mov eax, dword [ebp - 0x64c]
mov ecx, eax
and ecx, 0xfffffffd
cmp ecx, 0x40
je 0x455a7e
cmp eax, 0x41
je 0x455a7e
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
movsx edx, byte [ebx + 0xb4]
jmp 0x4545a7
mov esi, dword [ebp - 0x640]
mov edx, dword [esi + 0x20]
test edx, edx
je 0x455b2d
test byte [edx + 0x44], 2
je 0x455aff
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x455ae9
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp edx, 0x74
je 0x455b6c
cmp ecx, 0x40
je 0x455a5c
cmp ecx, 0x42
je 0x4559b0
jmp 0x454594
mov eax, dword [esi + 0x118]
mov dword [ebp - 0x6b0], eax
mov dword [ebp - 0x6ac], 0
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x455ba8
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x455ba0
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x455b8b
dec eax
mov dword [ebp - 0x6a0], eax
jmp 0x455bb2
mov dword [ebp - 0x6a0], 0
mov edx, dword [ebp - 0x6a0]
lea ecx, [ebp - 0x6a8]
push ecx
push 0
lea edi, [edx + 3]
mov dword [ecx + 0xc], edi
push edi
lea eax, [edx + 2]
mov dword [ecx + 4], eax
call fcn.00460c10
add esp, 0xc
test eax, eax
jne 0x456cf5
push dword [ebp - 0x69c]
push 0
push dword [ebp - 0x6a8]
call fcn.004a08c0
add esp, 0xc
mov eax, dword [ebp - 0x6a8]
xor ecx, ecx
movzx edx, byte [ecx + 0x4c64d8]
mov byte [ecx + eax], dl
inc ecx
cmp byte [ecx + 0x4c64d8], 0
je 0x456cd4
cmp ecx, 2
jl 0x455bfc
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x455c96
mov edx, dword [ebp - 0x6a8]
xor eax, eax
cmp byte [ecx], 0
lea edi, [edx + 2]
je 0x455c64
mov dword [ebp - 0x640], esi
mov dword [ebp - 0x644], ebx
mov esi, dword [ebp - 0x6a0]
cmp eax, esi
jge 0x456cb7
movzx ebx, byte [eax + ecx]
mov byte [eax + edi], bl
inc eax
cmp byte [eax + ecx], 0
jne 0x455c42
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
cmp eax, dword [ebp - 0x6a0]
jge 0x455c96
lea edi, [ebp - 0x6a0]
mov ecx, dword [edi]
sub ecx, eax
mov dword [edi], ecx
cmp ecx, 0x60
jle 0x456c22
push dword [ebp - 0x6a0]
push 0x20
lea eax, [eax + edx + 2]
push eax
call fcn.004a08c0
add esp, 0xc
xor eax, eax
mov byte [ebp - 0x3cc], al
mov dword [ebp - 0x698], eax
mov edx, dword [ebx + 0x10]
mov dword [ebp - 0x6b4], edx
test edx, edx
je 0x456bdf
mov ecx, edx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x455cce
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x455cb9
dec eax
mov edx, eax
mov eax, ecx
mov dword [ebp - 0x6c0], 0
movsx eax, byte [eax]
test eax, eax
je 0x455d2b
mov dword [ebp - 0x644], ebx
mov dword [ebp - 0x6d0], edx
mov dword [ebp - 0x640], esi
mov ebx, dword [ebp - 0x6c0]
inc ecx
cmp eax, 0x2c
lea edx, [ebx + 1]
jne 0x455d06
mov ebx, edx
movsx eax, byte [ecx]
test eax, eax
jne 0x455cfb
mov dword [ebp - 0x6c0], ebx
mov dword [ebp - 0x6b4], ecx
mov edx, dword [ebp - 0x6d0]
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
mov eax, dword [ebp - 0x6c0]
sub dword [ebp - 0x6b4], edx
lea edx, [ebp - 0x698]
push edx
push 0
lea ecx, [eax*4 + 4]
push ecx
call fcn.00460c10
add esp, 0xc
test eax, eax
jne 0x456b53
mov eax, dword [ebp - 0x6b4]
movsx eax, byte [eax]
test eax, eax
je 0x455dd7
xor edx, edx
mov edi, 1
mov dword [ebp - 0x640], esi
xor ecx, ecx
mov dword [ebp - 0x644], ebx
mov ebx, eax
mov esi, dword [ebp - 0x6b4]
xor eax, eax
cmp ebx, 0x2d
jne 0x455d92
inc esi
mov edi, 0xffffffff
movsx ebx, byte [esi]
lea edx, [edx + edx*4]
lea edx, [ebx + edx*2 - 0x30]
movsx ebx, byte [esi + 1]
cmp ebx, 0x2c
je 0x455da6
test ebx, ebx
jne 0x455dc3
imul edx, edi
inc esi
mov ebx, dword [ebp - 0x698]
mov edi, 1
mov dword [ebx + ecx*4], edx
inc ecx
movsx ebx, byte [esi]
mov edx, eax
cmp ebx, 0x2c
jne 0x455dc7
inc esi
movsx ebx, byte [esi]
test ebx, ebx
jne 0x455d84
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
mov edi, dword [ebp - 0x698]
xor eax, eax
mov edx, dword [ebp - 0x6c0]
inc edx
mov dword [ebp - 0x618], edi
mov dword [ebp - 0x614], edx
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x608], 1
mov dword [ebp - 0x604], eax
mov dword [ebp - 0x600], edx
mov dword [ebp - 0x5fc], 4
mov dword [ebp - 0x5f8], 1
lea eax, [ebp - 0x6c4]
push eax
push 0
push 0x39
call fcn.00460c10
add esp, 0xc
test eax, eax
jne 0x456ac7
mov eax, dword [ebp - 0x6c4]
mov edi, dword [esi + 0x98]
mov dword [eax], edi
mov ecx, dword [ebp - 0x6c4]
mov edx, dword [esi + 0x10c]
mov dword [ecx + 0x1c], edx
mov edi, dword [ebp - 0x6c4]
movzx edx, byte [esi + 0x199]
shr edx, 3
and edx, 1
movzx eax, byte [edi + 0x36]
shl edx, 6
and eax, 0xffffffbf
or eax, edx
mov byte [edi + 0x36], al
mov edx, dword [ebp - 0x6c4]
mov eax, dword [esi + 0x8c]
mov dword [edx + 4], eax
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x17a]
mov byte [edi + 0x2c], cl
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x17b]
mov byte [edx + 0x2d], al
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x17c]
mov byte [edi + 0x2e], cl
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x17f]
mov byte [edx + 0x2f], al
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x180]
mov byte [edi + 0x30], cl
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x189]
mov byte [edx + 0x31], al
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x18a]
mov byte [edi + 0x32], cl
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x187]
mov byte [edx + 0x33], al
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x188]
mov byte [edi + 0x34], cl
mov ecx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x18d]
shr eax, 5
movzx edx, byte [ecx + 0x35]
and eax, 1
and edx, 0xfffffffe
or edx, eax
mov byte [ecx + 0x35], dl
mov edi, dword [ebp - 0x6c4]
movzx edx, byte [esi + 0x18e]
shr edx, 2
and edx, 1
movzx eax, byte [edi + 0x35]
add edx, edx
and eax, 0xfffffffd
or eax, edx
mov byte [edi + 0x35], al
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x18f]
shr eax, 5
and eax, 1
movzx ecx, byte [edx + 0x35]
shl eax, 2
and ecx, 0xfffffffb
or ecx, eax
mov byte [edx + 0x35], cl
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x18f]
shr ecx, 6
and ecx, 1
movzx eax, byte [edi + 0x35]
shl ecx, 3
and eax, 0xfffffff7
or eax, ecx
mov byte [edi + 0x35], al
mov ecx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x18f]
shr eax, 3
movzx edx, byte [ecx + 0x35]
and eax, 0xfffffff0
and edx, 0xffffffef
or edx, eax
mov byte [ecx + 0x35], dl
mov edi, dword [ebp - 0x6c4]
movzx edx, byte [esi + 0x190]
and edx, 1
movzx eax, byte [edi + 0x35]
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [edi + 0x35], al
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x190]
shr eax, 1
and eax, 1
movzx ecx, byte [edx + 0x35]
shl eax, 6
and ecx, 0xffffffbf
or ecx, eax
mov byte [edx + 0x35], cl
mov edi, dword [ebp - 0x6c4]
movzx ecx, byte [esi + 0x190]
shr ecx, 2
movzx eax, byte [edi + 0x35]
shl ecx, 7
and eax, 0x7f
or eax, ecx
mov byte [edi + 0x35], al
mov ecx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x192]
and eax, 2
movzx edx, byte [ecx + 0x36]
and edx, 0xfffffffd
or edx, eax
mov byte [ecx + 0x36], dl
mov edi, dword [ebp - 0x6c4]
movzx edx, byte [esi + 0x192]
and edx, 4
movzx eax, byte [edi + 0x36]
and eax, 0xfffffffb
or eax, edx
mov byte [edi + 0x36], al
mov edx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x192]
and eax, 1
movzx ecx, byte [edx + 0x36]
and ecx, 0xfffffffe
or ecx, eax
mov byte [edx + 0x36], cl
mov edi, dword [ebp - 0x6c4]
mov ecx, dword [esi + 0x94]
mov dword [edi + 0x10], ecx
mov ecx, dword [ebp - 0x6c4]
movzx eax, byte [esi + 0x193]
shr eax, 6
and eax, 1
movzx edx, byte [ecx + 0x36]
shl eax, 4
and edx, 0xffffffef
or edx, eax
mov byte [ecx + 0x36], dl
mov edi, dword [ebp - 0x6c4]
movzx edx, byte [esi + 0x193]
and edx, 0x20
movzx eax, byte [edi + 0x36]
and eax, 0xffffffdf
or eax, edx
mov byte [edi + 0x36], al
mov edx, dword [ebp - 0x6c4]
mov eax, dword [esi + 0x88]
mov dword [edx + 0x18], eax
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x4560e9
mov edx, dword [ebp - 0x6c4]
mov eax, dword [eax + 0x14]
mov dword [edx + 0x20], eax
mov eax, dword [esi + 0x6c]
mov ecx, dword [ebp - 0x6c4]
mov edx, dword [eax + 4]
mov dword [ecx + 8], edx
mov edi, dword [esi + 0x6c]
mov edx, dword [ebp - 0x6c4]
mov eax, dword [edi + 8]
mov dword [edx + 0xc], eax
mov ecx, dword [esi + 0x6c]
mov edi, dword [ebp - 0x6c4]
movzx edx, byte [ecx + 0xbb]
shr edx, 1
and edx, 1
movzx eax, byte [edi + 0x36]
shl edx, 3
and eax, 0xfffffff7
or eax, edx
mov byte [edi + 0x36], al
mov edx, dword [ebp - 0x6c4]
mov eax, dword [esi + 0xa4]
mov dword [edx + 0x28], eax
mov ecx, dword [ebp - 0x6c4]
mov dword [ecx + 0x24], 0
inc word [esi + 0x178]
mov edx, dword [esi + 0xa4]
test edx, edx
je 0x456166
mov eax, dword [ebp - 0x6c4]
mov dword [edx + 0x24], eax
mov eax, dword [ebp - 0x6c4]
jmp 0x456178
mov eax, dword [ebp - 0x6c4]
mov dword [esi + 0xa0], eax
mov eax, dword [ebp - 0x6c4]
push 0xc0
push 0
mov dword [esi + 0xa4], eax
lea edi, [ebp - 0x48c]
push edi
call fcn.004a08c0
add esp, 0xc
mov dword [ebp - 0x48c], esi
mov eax, dword [esi + 0x6c]
mov dword [esi + 0x6c], edi
mov edx, dword [esi + 0x98]
mov dword [ebp - 0x6d8], eax
mov eax, dword [ebp - 0x648]
test edx, edx
je 0x456a8d
push dword [esi + 0x10c]
push dword [ebp - 0x6a4]
push edx
lea edx, [ebp - 0x6ac]
push edx
lea ecx, [ebp - 0x618]
push ecx
push dword [ebp - 0x6a8]
lea edi, [ebp - 0x6b0]
push edi
push dword [ebp - 0x654]
call eax
add esp, 0x20
mov edi, dword [esi + 0xa4]
mov ecx, dword [ebp - 0x6d8]
mov dword [esi + 0x6c], ecx
mov eax, dword [edi]
mov dword [esi + 0x98], eax
mov edx, dword [edi + 0x1c]
mov dword [esi + 0x10c], edx
movzx edx, byte [edi + 0x36]
shr edx, 6
and edx, 1
movzx eax, byte [esi + 0x199]
shl edx, 3
and eax, 0xfffffff7
or eax, edx
mov byte [esi + 0x199], al
mov eax, dword [edi + 4]
mov dword [esi + 0x8c], eax
movzx edx, byte [edi + 0x2c]
mov byte [esi + 0x17a], dl
movzx eax, byte [edi + 0x2d]
mov byte [esi + 0x17b], al
movzx eax, byte [edi + 0x2e]
mov byte [esi + 0x17c], al
movzx eax, byte [edi + 0x2f]
mov byte [esi + 0x17f], al
movzx eax, byte [edi + 0x30]
mov byte [esi + 0x180], al
movzx eax, byte [edi + 0x31]
mov byte [esi + 0x189], al
movzx eax, byte [edi + 0x32]
mov byte [esi + 0x18a], al
movzx eax, byte [edi + 0x33]
mov byte [esi + 0x187], al
movzx eax, byte [edi + 0x34]
mov byte [esi + 0x188], al
movzx edx, byte [edi + 0x35]
and edx, 1
movzx eax, byte [esi + 0x18d]
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [esi + 0x18d], al
movzx edx, byte [edi + 0x35]
shr edx, 1
and edx, 1
movzx eax, byte [esi + 0x18e]
shl edx, 2
and eax, 0xfffffffb
or eax, edx
mov byte [esi + 0x18e], al
movzx edx, byte [edi + 0x35]
shr edx, 2
and edx, 1
movzx eax, byte [esi + 0x18f]
shl edx, 5
and eax, 0xffffffdf
or eax, edx
mov byte [esi + 0x18f], al
and eax, 0xffffffbf
movzx edx, byte [edi + 0x35]
shr edx, 3
and edx, 1
shl edx, 6
or eax, edx
mov byte [esi + 0x18f], al
and eax, 0x7f
movzx edx, byte [edi + 0x35]
shr edx, 4
shl edx, 7
or eax, edx
mov byte [esi + 0x18f], al
movzx edx, byte [edi + 0x35]
shr edx, 5
movzx eax, byte [esi + 0x190]
and edx, 1
and eax, 0xfffffffe
or eax, edx
mov byte [esi + 0x190], al
and eax, 0xfffffffd
movzx edx, byte [edi + 0x35]
shr edx, 6
and edx, 1
add edx, edx
or eax, edx
mov byte [esi + 0x190], al
and eax, 0xfffffffb
movzx edx, byte [edi + 0x35]
shr edx, 5
and edx, 0xfffffffc
or eax, edx
mov byte [esi + 0x190], al
movzx eax, byte [esi + 0x192]
movzx edx, byte [edi + 0x36]
and eax, 0xfffffffd
and edx, 2
or eax, edx
mov byte [esi + 0x192], al
and eax, 0xfffffffb
movzx edx, byte [edi + 0x36]
and edx, 4
or eax, edx
mov byte [esi + 0x192], al
and eax, 0xfffffffe
movzx edx, byte [edi + 0x36]
and edx, 1
or eax, edx
mov byte [esi + 0x192], al
mov eax, dword [edi + 0x10]
mov dword [esi + 0x94], eax
movzx edx, byte [edi + 0x36]
shr edx, 4
and edx, 1
movzx eax, byte [esi + 0x193]
shl edx, 6
and eax, 0xffffffbf
or eax, edx
mov byte [esi + 0x193], al
and eax, 0xffffffdf
movzx edx, byte [edi + 0x36]
and edx, 0x20
or eax, edx
mov byte [esi + 0x193], al
mov dword [ebp - 0x6d4], edi
mov edi, dword [edi + 0x18]
mov dword [esi + 0x88], edi
test ecx, ecx
je 0x4563fc
mov eax, dword [ebp - 0x6d4]
mov edx, dword [eax + 0x20]
mov dword [ecx + 0x14], edx
mov edi, dword [esi + 0x6c]
mov dword [ebp - 0x6d8], edi
mov edi, dword [ebp - 0x6d4]
mov edx, dword [ebp - 0x6d8]
push edi
mov ecx, dword [edi + 0xc]
mov dword [edx + 8], ecx
mov eax, dword [edi + 8]
mov dword [edx + 4], eax
movzx ecx, byte [edi + 0x36]
shr ecx, 3
and ecx, 1
movzx eax, byte [edx + 0xbb]
add ecx, ecx
and eax, 0xfffffffd
or eax, ecx
mov byte [edx + 0xbb], al
xor eax, eax
mov edx, dword [edi + 0x28]
mov dword [esi + 0xa4], edx
dec word [esi + 0x178]
mov dword [edi + 0x28], eax
mov dword [edi + 0x24], eax
call fcn.00460cc0
add esp, 4
test eax, eax
jne 0x456a01
mov eax, dword [ebp - 0x698]
test eax, eax
je 0x456476
push eax
call fcn.00460cc0
add esp, 4
test eax, eax
jne 0x456975
push dword [ebp - 0x6a8]
call fcn.00460cc0
add esp, 4
test eax, eax
jne 0x4568e9
mov eax, dword [ebp - 0x6ac]
test eax, eax
je 0x4565f3
cmp dword [esi + 0x10c], 0
je 0x456500
test eax, eax
jl 0x4566d6
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4566b2
test byte [edx + 0x44], 2
je 0x456683
mov dword [edx + 0x38], 0x7f
mov edx, dword [esi + 0x20]
mov eax, dword [ebp - 0x6ac]
mov dword [edx + 0x3c], eax
mov eax, dword [esi + 0x78]
test eax, eax
je 0x4564e2
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
mov eax, 0x7f
lea esp, [ebp - 0xc]
pop ebx
pop edi
pop esi
pop ebp
ret
lea ecx, [ebp - 0x3cc]
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x45651d
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x456508
dec eax
push dword [ebp - 0x630]
push 0
mov dword [esi + 0x10c], eax
inc eax
push eax
call fcn.00460c10
add esp, 0xc
test eax, eax
jne 0x4567a2
mov eax, dword [esi + 0x10c]
inc eax
mov edx, dword [esi + 0x98]
mov dword [ebp - 0x6dc], 0
cmp byte [ebp - 0x3cc], 0
je 0x45659f
mov dword [ebp - 0x644], ebx
mov dword [ebp - 0x640], esi
mov ebx, dword [ebp - 0x6dc]
cmp ebx, eax
jge 0x456791
movzx ecx, byte [ebp + ebx - 0x3cc]
mov byte [ebx + edx], cl
inc ebx
cmp byte [ebp + ebx - 0x3cc], 0
jne 0x45656f
mov dword [ebp - 0x6dc], ebx
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
cmp eax, dword [ebp - 0x6dc]
jle 0x4565c8
sub eax, dword [ebp - 0x6dc]
cmp eax, 0x60
jle 0x4566f7
push eax
push 0x20
add edx, dword [ebp - 0x6dc]
push edx
call fcn.004a08c0
add esp, 0xc
mov edx, dword [esi + 0x98]
mov eax, dword [esi + 0x10c]
mov byte [eax + edx], 0
or byte [esi + 0x199], 8
mov eax, dword [ebp - 0x6ac]
test eax, eax
jl 0x4566d6
jne 0x4564ab
mov eax, 1
xor edx, edx
mov dword [ebp - 0x644], ebx
lea edi, [ebp + 0xc]
mov dword [ebp - 0x640], esi
mov esi, eax
mov ebx, edx
mov ecx, dword [ebp + 0xc]
movsx eax, byte [ecx]
mov ecx, eax
and ecx, 0xfffffffd
cmp ecx, 0x40
je 0x4568e3
cmp eax, 0x3f
je 0x4568e3
and eax, 0xffffffbf
cmp eax, 1
jne 0x45663c
dec esi
test esi, esi
jg 0x45663c
mov ebx, 1
lea ecx, [ebp - 0x304]
push ecx
lea ecx, [ebp - 0x654]
push ecx
lea ecx, [ebp + 0x10]
push ecx
push edi
call fcn.0046d580
add esp, 0x10
test eax, eax
jne 0x456851
cmp dword [ebp - 0x64c], 2
je 0x45682e
test ebx, ebx
je 0x45660d
mov esi, esi
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
jmp 0x453f23
push eax
movzx eax, byte [esi + 0x190]
push 0x7f
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push 0x7f
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp eax, 0xffffffff
je 0x4564ab
cmp eax, 0xfffffffe
je 0x4564ab
mov dword [ebp - 0x6ac], 0
jmp 0x4565f3
mov ecx, eax
shr ecx, 0x1f
add ecx, eax
sar ecx, 1
test ecx, ecx
jbe 0x45678a
mov edi, dword [ebp - 0x6dc]
mov dword [ebp - 0x6e0], 0
mov dword [ebp - 0x6e4], edx
mov dword [ebp - 0x644], ebx
add edi, edx
mov dword [ebp - 0x6e8], eax
mov eax, 0x20
mov dword [ebp - 0x640], esi
mov edx, edi
mov ebx, dword [ebp - 0x6e0]
mov byte [edx + ebx*2], al
mov byte [edx + ebx*2 + 1], al
inc ebx
cmp ebx, ecx
jb 0x45673f
mov dword [ebp - 0x6e0], ebx
mov ecx, ebx
mov eax, dword [ebp - 0x6e8]
mov edx, dword [ebp - 0x6e4]
mov ebx, dword [ebp - 0x644]
lea edi, [ecx + ecx + 1]
mov esi, dword [ebp - 0x640]
lea ecx, [edi - 1]
cmp ecx, eax
jae 0x4565c8
add edx, dword [ebp - 0x6dc]
mov byte [edi + edx - 1], 0x20
jmp 0x4565c8
mov edi, 1
jmp 0x45676f
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
jmp 0x4565c8
mov edx, dword [esi + 0x20]
test edx, edx
je 0x45680b
test byte [edx + 0x44], 2
je 0x4567dd
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x4567c7
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov esi, dword [ebp - 0x640]
or byte [esi + 0x198], 0x20
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
mov esi, dword [ebp - 0x640]
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4568c0
test byte [edx + 0x44], 2
je 0x456892
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x45687c
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
inc esi
jmp 0x45663c
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456952
test byte [edx + 0x44], 2
je 0x456924
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x45690e
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4569de
test byte [edx + 0x44], 2
je 0x4569b0
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x45699a
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456a6a
test byte [edx + 0x44], 2
je 0x456a3c
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x456a26
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push 0xc8
push dword [ebp - 0x6a4]
lea edx, [ebp - 0x3cc]
push edx
lea ecx, [ebp - 0x6ac]
push ecx
lea edi, [ebp - 0x618]
push edi
push dword [ebp - 0x6a8]
lea edx, [ebp - 0x6b0]
push edx
push dword [ebp - 0x654]
call eax
jmp 0x4561ea
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456b30
test byte [edx + 0x44], 2
je 0x456b02
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x456aec
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456bbc
test byte [edx + 0x44], 2
je 0x456b8e
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x456b78
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov dword [ebp - 0x618], 0xffffffff
mov dword [ebp - 0x614], eax
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x608], 1
mov dword [ebp - 0x604], eax
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], eax
mov dword [ebp - 0x5f8], eax
jmp 0x455e28
mov edi, ecx
shr edi, 0x1f
add edi, ecx
sar edi, 1
mov dword [ebp - 0x6b8], edi
test edi, edi
jbe 0x456cc8
mov dword [ebp - 0x6c8], edx
lea edi, [eax + edx + 2]
xor ecx, ecx
mov dword [ebp - 0x644], ebx
mov dword [ebp - 0x6cc], eax
mov eax, 0x20
mov dword [ebp - 0x640], esi
mov edx, edi
mov ebx, dword [ebp - 0x6b8]
mov byte [edx + ecx*2], al
mov byte [edx + ecx*2 + 1], al
inc ecx
cmp ecx, ebx
jb 0x456c64
mov eax, dword [ebp - 0x6cc]
lea ecx, [ecx + ecx + 1]
mov edx, dword [ebp - 0x6c8]
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
mov dword [ebp - 0x6bc], ecx
mov ecx, dword [ebp - 0x6bc]
lea edi, [ecx - 1]
cmp edi, dword [ebp - 0x6a0]
jae 0x455c96
lea edx, [eax + edx + 2]
mov eax, ecx
mov byte [eax + edx - 1], 0x20
jmp 0x455c96
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
jmp 0x455c96
mov dword [ebp - 0x6bc], 1
jmp 0x456c92
cmp ecx, 2
jge 0x455c19
mov edx, ecx
neg edx
add edx, 2
je 0x455c19
inc eax
mov byte [eax + ecx - 1], 0x20
jmp 0x455c19
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456d5e
test byte [edx + 0x44], 2
je 0x456d30
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x456d1a
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ede
mov eax, dword [esi + 0x20]
test eax, eax
je 0x456e0a
test byte [eax + 0x44], 2
je 0x456dd7
mov edx, 0x3d
mov dword [eax + 0x38], edx
mov eax, dword [esi + 0x20]
mov dword [eax + 0x3c], edx
mov eax, dword [esi + 0x78]
test eax, eax
je 0x456dc1
xor edx, edx
mov dword [eax + 4], edx
mov dword [esi + 0x78], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x4547a0
mov eax, 0x3d
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x3d
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
add dword [ebp + 0xc], 2
lea eax, [ebp - 0x304]
push eax
lea edx, [ebp - 0x654]
push edx
lea ecx, [ebp + 0x10]
push ecx
push edi
call fcn.0046d580
add esp, 0x10
test eax, eax
je 0x4542bf
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456ec2
test byte [edx + 0x44], 2
je 0x456e94
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x456e7e
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov eax, dword [ebx + 0x14]
test eax, eax
lea edx, [eax + 1]
jne 0x456ef4
mov edx, 2
mov dword [ebx + 0x14], edx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
mov edx, dword [esi + 0x20]
test edx, edx
je 0x456f76
test byte [edx + 0x44], 2
je 0x456f48
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x456f32
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov eax, 0x69
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x69
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov eax, dword [ebp + 0xc]
cmp byte [eax], 2
je 0x457008
movzx edx, byte [ebx + 0xbb]
jmp 0x454c15
cmp dword [ebp - 0x624], 2
jge 0x456ffc
mov dword [ebx + 0x14], 2
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov eax, 0x10c
push eax
movzx edx, byte [esi + 0x190]
push eax
and edx, 7
push edx
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
mov eax, 0x10c
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 0
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4571e5
test byte [edx + 0x44], 2
je 0x4571b7
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x4571a1
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp dword [ebp - 0x624], 2
jge 0x454eeb
mov dword [ebx + 0x14], 2
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
cmp dword [ebp - 0x624], 2
jge 0x454be0
mov dword [ebx + 0x14], 2
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
cmp dword [ebp - 0x624], 2
jge 0x454be0
mov edi, dword [ebp - 0x620]
jmp 0x454c15
mov eax, dword [ebx + 0x14]
test eax, eax
jle 0x45727f
inc eax
mov dword [ebx + 0x14], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
mov edx, dword [esi + 0x20]
test edx, edx
je 0x4572fe
test byte [edx + 0x44], 2
je 0x4572d0
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x4572ba
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
cmp dword [ebp - 0x61c], 0
jne 0x45401c
cmp dword [ebp - 0x624], 1
jg 0x45401c
or edx, 0x40
mov byte [ebx + 0xbb], dl
jmp 0x454025
cmp dword [ebp - 0x61c], 0
jne 0x454009
cmp dword [ebp - 0x624], 1
jg 0x454009
movzx edx, byte [ebx + 0xbb]
or edx, 0x20
jmp 0x454013
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x41
je 0x4573c9
mov dword [ebp - 0x644], ebx
lea edx, [ebp + 0xc]
mov dword [ebp - 0x640], esi
lea eax, [ebp + 0x10]
mov ebx, eax
mov esi, edx
lea edi, [ebp - 0x654]
lea ecx, [ebp - 0x304]
push ecx
push edi
push ebx
push esi
call fcn.0046d580
add esp, 0x10
test eax, eax
jne 0x4573f1
cmp dword [ebp - 0x64c], 2
je 0x4573db
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x41
jne 0x457396
mov ebx, dword [ebp - 0x644]
mov esi, dword [ebp - 0x640]
add eax, 2
mov dword [ebp + 0xc], eax
and byte [esi + 0x198], 0xdf
jmp 0x453f30
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7
mov esi, dword [ebp - 0x640]
mov edx, dword [esi + 0x20]
test edx, edx
je 0x457460
test byte [edx + 0x44], 2
je 0x457432
mov dword [edx + 0x38], eax
mov edx, dword [esi + 0x20]
mov dword [edx + 0x3c], eax
mov edx, dword [esi + 0x78]
test edx, edx
je 0x45741c
xor ecx, ecx
mov dword [edx + 4], ecx
mov dword [esi + 0x78], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push eax
push eax
movzx eax, byte [esi + 0x190]
and eax, 7
push eax
push 0xffffffffffffffff
push esi
call fcn.0046e340
add esp, 0x14
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
push esi
push eax
push eax
push 1
call fcn.00463630
add esp, 0x10
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454c70
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
cmp ecx, dword [0x4f195c]
jne 0x454f56
jmp 0x454ec7