Function at 0x55ee00
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b99ee
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x63b404]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x38], edi
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x6c], eax
cmp byte [edi + 4], al
je 0x55ee4b
cmp dword [edi + 0x58], eax
setne al
jmp 0x55f7c7
mov byte [edi + 4], 1
cmp dword [edi + 8], eax
je 0x55f7c5
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0x2c]
add ecx, 2
mov dword [ebp - 0x88], ecx
lea ebx, [eax*4 + 4]
mov dword [ebp - 0x68], ebx
cmp ecx, 0xfde8
jge 0x55f7c5
push 0
push 4
push dword [edi + 0x64]
push dword [edi + 0x60]
call fcn.0056fc30
mov esi, eax
mov ecx, edx
mov eax, ebx
cdq
push edx
push eax
push ecx
push esi
call fcn.0056fc30
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x88]
cdq
cmp ecx, edx
jl 0x55f7c5
jg 0x55eeb9
cmp esi, eax
jb 0x55f7c5
mov esi, dword [edi + 0x30]
mov eax, dword [edi + 0x3c]
inc esi
add eax, dword [edi + 0x34]
add esi, eax
lea ecx, [esi*8]
cmp esi, 0x1fffffff
jbe 0x55eed9
or ecx, 0xffffffff
jmp 0x55eee1
cmp ecx, 0x1000
jb 0x55ef08
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.0056f5ce
add esp, 4
test eax, eax
je 0x55f7e3
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x55ef1b
test ecx, ecx
je 0x55ef19
push ecx
call fcn.0056f5ce
add esp, 4
mov ecx, eax
jmp 0x55ef1b
xor ecx, ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0xb4], esi
mov dword [ebp - 0xb0], ecx
mov esi, dword [edi + 0x10]
lea ecx, [ebp - 0x84]
push esi
mov dword [ebp - 4], 0
call fcn.00559740
mov ecx, dword [ebp - 0x80]
lea eax, [esi*4]
push eax
push 0xff
push ecx
call fcn.00574370
add esp, 0xc
mov dword [ebp - 0x7c], 0
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x74], 0
push esi
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 2
call fcn.005563a0
push esi
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 3
call fcn.005563a0
push dword [edi + 8]
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 4
push eax
call fcn.0055eda0
mov eax, dword [edi + 8]
lea ecx, [ebp - 0x7c]
mov esi, dword [ebp - 0x80]
add esp, 8
mov ebx, 1
mov byte [ebp - 0x29], 0
mov dword [ebp - 0x64], ebx
mov dword [esi + eax*4], 0
lea eax, [ebp - 0x29]
push eax
push dword [ebp - 0x68]
lea eax, [ebp - 0x48]
push 0
push eax
call fcn.0055fb80
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x8c], edx
lea eax, [edx + eax*4]
cmp edx, eax
je 0x55f717
nop dword [eax]
mov edx, dword [edx]
mov eax, dword [ebp - 0x7c]
mov ecx, dword [esi + edx*4]
imul ecx, dword [ebp - 0x68]
add eax, ecx
mov dword [ebp - 0xac], ecx
xor ecx, ecx
mov dword [ebp - 0x34], eax
cmp dword [edi + 0x14], ecx
jle 0x55f020
add eax, 4
mov dword [eax], 0x30
lea eax, [eax + 4]
inc ecx
cmp ecx, dword [edi + 0x14]
jl 0x55f011
mov ecx, dword [ebp - 0x34]
mov eax, 1
mov esi, dword [ebp - 0x60]
mov byte [ebp - 0x29], 0
mov dword [ecx], 0x30
mov dword [ebp - 0x5c], 0
mov dword [esi], edx
mov dword [esi + 4], 0
mov ebx, dword [esi + eax*8 - 8]
dec eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x44], ebx
mov eax, dword [esi + eax*8 + 4]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x50]
mov edx, dword [eax + ebx*8]
lea esi, [eax + ebx*8]
mov eax, edx
mov dword [ebp - 0x30], esi
and eax, 7
dec eax
cmp eax, 6
ja case.default.0x55f072
jmp dword [eax*4 + 0x55f7e8]
add ebx, 1
mov dword [ebp - 0x44], ebx
je 0x55f3f1
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x55f3f1
cmp ebx, dword [ebp - 0x50]
jae 0x55f3f1
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + ebx*4]
cmp eax, dword [ebp - 0x5c]
jae 0x55f0ad
cmp dword [ecx + eax*4], ebx
je 0x55f710
cmp ebx, dword [ebp - 0x50]
jae 0x55f3f1
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + ebx*4]
lea edx, [eax + ebx*4]
cmp ecx, dword [ebp - 0x5c]
jae 0x55f0d0
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ecx*4], ebx
je 0x55f3f1
mov eax, dword [ebp - 0x5c]
mov dword [edx], eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x5c]
jmp 0x55f3f1
mov eax, dword [ebp - 0x80]
shr edx, 4
mov ebx, dword [eax + edx*4]
mov dword [ebp - 0x40], ebx
cmp ebx, 0xffffffff
jne 0x55f1b0
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x88]
jge 0x55f710
mov ebx, eax
mov dword [ebp - 0x40], ebx
test edx, edx
je 0x55f175
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x55f175
mov edi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa8]
cmp edx, edi
jae 0x55f172
mov esi, dword [ebx + edx*4]
cmp esi, ecx
jae 0x55f144
cmp dword [eax + esi*4], edx
mov esi, dword [ebp - 0x30]
je 0x55f172
jmp 0x55f147
mov esi, dword [ebp - 0x30]
cmp edx, edi
jae 0x55f172
mov esi, dword [ebx + edx*4]
cmp esi, ecx
jae 0x55f157
cmp dword [eax + esi*4], edx
je 0x55f16f
mov dword [ebx + edx*4], ecx
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x98]
mov dword [eax + ecx*4], edx
inc dword [ebp - 0xa8]
mov esi, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x40]
mov eax, dword [esi]
mov ecx, dword [ebp - 0x80]
mov edx, dword [ebp - 0x64]
shr eax, 4
mov byte [ebp - 0x2a], 0
mov dword [ecx + eax*4], edx
lea eax, [ebp - 0x2a]
push eax
push dword [ebp - 0x68]
lea eax, [ebp - 0x90]
inc edx
push dword [ebp - 0x78]
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x64], edx
push eax
call fcn.0055fb80
mov eax, dword [ebp - 0x7c]
add eax, dword [ebp - 0xac]
mov dword [ebp - 0x34], eax
mov dl, byte [esi + 5]
movzx ecx, byte [esi + 4]
movzx eax, dl
cmp ecx, eax
ja 0x55f230
mov eax, ebx
mov ebx, dword [ebp - 0x34]
shl eax, 0x10
or eax, dword [ebp - 0x3c]
mov edi, eax
or edi, 0x40
cmp byte [ebp - 0x29], 0
cmove edi, eax
mov dword [ebp - 0x48], edi
nop dword [eax + eax]
mov eax, dword [ebp - 0x38]
movzx edx, byte [eax + ecx + 0x70]
cmp ecx, 0xff
jge 0x55f207
mov edi, eax
movzx eax, byte [edi + ecx + 0x71]
cmp eax, edx
jne 0x55f204
inc ecx
cmp ecx, 0xff
jl 0x55f1f2
mov edi, dword [ebp - 0x48]
mov esi, dword [ebx + edx*4 + 4]
mov eax, esi
and eax, 0x30
cmp al, 0x30
jne 0x55f21a
mov dword [ebx + edx*4 + 4], edi
jmp 0x55f222
cmp esi, edi
jne 0x55f710
mov esi, dword [ebp - 0x30]
inc ecx
mov dl, byte [esi + 5]
movzx eax, dl
cmp ecx, eax
jle 0x55f1e0
test byte [esi + 6], 1
je 0x55f2cf
movzx eax, byte [esi + 4]
mov ecx, 0x61
cmp eax, 0x61
cmovb eax, ecx
movzx ecx, dl
add eax, 0xffffffe0
mov edx, 0x7a
cmp ecx, 0x7a
cmova ecx, edx
lea ebx, [ecx - 0x20]
mov dword [ebp - 0x48], ebx
cmp eax, ebx
jg 0x55f2cf
mov ecx, dword [ebp - 0x40]
shl ecx, 0x10
or ecx, dword [ebp - 0x3c]
mov edi, ecx
or edi, 0x40
cmp byte [ebp - 0x29], 0
cmove edi, ecx
nop dword [eax]
mov ecx, dword [ebp - 0x38]
movzx edx, byte [ecx + eax + 0x70]
cmp eax, 0xff
jge 0x55f2a5
mov ebx, ecx
movzx ecx, byte [ebx + eax + 0x71]
cmp ecx, edx
jne 0x55f2a2
inc eax
cmp eax, 0xff
jl 0x55f291
mov ebx, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x34]
mov esi, dword [ecx + edx*4 + 4]
mov ecx, esi
and ecx, 0x30
cmp cl, 0x30
jne 0x55f2bf
mov ecx, dword [ebp - 0x34]
mov dword [ecx + edx*4 + 4], edi
jmp 0x55f2c7
cmp esi, edi
jne 0x55f710
inc eax
cmp eax, ebx
jle 0x55f280
mov esi, dword [ebp - 0x30]
test byte [esi], 8
jne 0x55f6d2
mov ebx, dword [ebp - 0x44]
add ebx, 1
mov dword [ebp - 0x44], ebx
je 0x55f32f
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x55f32f
cmp ebx, dword [ebp - 0x50]
jae 0x55f32f
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + ebx*4]
cmp eax, dword [ebp - 0x5c]
jae 0x55f303
cmp dword [ecx + eax*4], ebx
je 0x55f710
cmp ebx, dword [ebp - 0x50]
jae 0x55f32f
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + ebx*4]
lea edx, [eax + ebx*4]
cmp ecx, dword [ebp - 0x5c]
jae 0x55f31e
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ecx*4], ebx
je 0x55f32f
mov eax, dword [ebp - 0x5c]
mov dword [edx], eax
mov ecx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x4c]
mov dword [eax + ecx*4], ebx
inc dword [ebp - 0x5c]
mov edi, dword [ebp - 0x38]
jmp 0x55f3f1
test dl, 8
jne 0x55f36f
lea esi, [ebx + 1]
lea eax, [ebp - 0x5c]
push esi
push eax
call fcn.0055eda0
add esp, 8
test al, al
je 0x55f710
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x3c]
mov dword [ecx + eax*8], esi
mov esi, dword [ebp - 0x30]
mov dword [ecx + eax*8 + 4], ebx
inc eax
mov dword [ebp - 0x70], eax
mov edx, dword [esi]
jmp 0x55f372
mov ebx, dword [ebp - 0x3c]
mov eax, edx
and eax, 7
cmp eax, 3
jne 0x55f38f
mov ecx, dword [esi + 4]
cmp ecx, 0xa
jge 0x55f39a
mov eax, 0x20
shl eax, cl
or ebx, eax
jmp 0x55f397
cmp eax, 4
jne 0x55f39a
or ebx, dword [esi + 4]
mov dword [ebp - 0x3c], ebx
shr edx, 4
lea eax, [ebp - 0x5c]
push edx
push eax
call fcn.0055eda0
add esp, 8
test al, al
je 0x55f710
mov ebx, dword [esi]
shr ebx, 4
mov dword [ebp - 0x44], ebx
jmp 0x55f3f1
cmp byte [ebp - 0x29], 0
jne 0x55f710
mov eax, dword [ebp - 0x3c]
mov dword [ecx], eax
test byte [esi], 8
mov byte [ebp - 0x29], 1
jne case.0x55f072.7
inc ebx
lea eax, [ebp - 0x5c]
push ebx
push eax
mov dword [ebp - 0x44], ebx
call fcn.0055eda0
add esp, 8
test al, al
je 0x55f710
mov eax, dword [edi + 0x50]
mov edx, dword [eax + ebx*8]
lea esi, [eax + ebx*8]
mov ecx, dword [ebp - 0x34]
mov eax, edx
and eax, 7
mov dword [ebp - 0x30], esi
dec eax
cmp eax, 6
jbe switch.0x0055f072
lea eax, [ebp - 0x14c]
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x14c], 0x6262e4
mov dword [ebp - 0xfc], vtable.std::basic_ios_char__struct_std::char_traits_char__.0
mov ebx, dword [ebp - 0x6c]
lea eax, [ebp - 0x148]
push 0
push 0
or ebx, 1
mov byte [ebp - 4], 5
push eax
lea ecx, [ebp - 0x14c]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x48], ebx
call fcn.005437e0
mov eax, dword [ebp - 0x14c]
push 8
mov dword [ebp - 4], 6
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_ostringstream_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov eax, dword [ebp - 0x14c]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x50]
mov dword [ebp + ecx - 0x150], eax
mov dword [ebp - method.std::basic_streambuf_char__struct_std::char_traits_char__.virtual_0], vtable.std::basic_streambuf_char__struct_std::char_traits_char__.0
call fcn.0056f5ce
mov esi, eax
add esp, 4
test esi, esi
je 0x55f4b4
push 1
mov byte [ebp - 4], 7
call fcn.00571946
add esp, 4
mov dword [esi + 4], eax
jmp 0x55f4b6
xor esi, esi
lea eax, [ebp - 0x144]
mov dword [ebp - 0x114], esi
mov dword [ebp - 0x13c], eax
lea eax, [ebp - 0x140]
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x134]
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x130]
mov dword [ebp - 0x128], eax
lea eax, [ebp - 0x124]
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x120]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x120], 0
mov dword [ebp - 0x144], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x124], 0
mov dword [ebp - method.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.virtual_0], vtable.std::basic_stringbuf_char__struct_std::char_traits_char___class_std::allocator_char__.0
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 4
push 0x623d7c
push 0x1bf
push 0x6259f4
lea eax, [ebp - 0x14c]
mov byte [ebp - 4], 8
push str.D:DeviplayGameManagersUGM3_MergingBackUSSussexelibsgoogle_re2_re2_2020_03_03_re2onepass.cc
push eax
call fcn.005444d0
add esp, 8
push eax
call fcn.005444d0
add esp, 8
mov ecx, eax
call fcn.00542b60
push eax
call fcn.005444d0
add esp, 8
mov eax, dword [ebp - 0x30]
mov byte [ebp - 4], 9
mov eax, dword [eax]
and eax, 7
push eax
lea eax, [ebp - 0x14c]
push str.unhandled_opcode:
push eax
call fcn.005444d0
add esp, 8
mov ecx, eax
call fcn.00542b60
cmp byte [ebp - 0x154], 0
mov byte [ebp - 4], 0xa
jne 0x55f6c3
lea eax, [ebp - 0x14c]
push 0x611ed0
push eax
call fcn.005444d0
mov cl, byte [ebp - 0x10c]
add esp, 8
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
test cl, 2
jne 0x55f62e
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
test edx, edx
je 0x55f62e
mov eax, dword [ebp - 0x138]
cmp edx, dword [ebp - 0x110]
cmovb edx, dword [ebp - 0x110]
mov ecx, dword [eax]
sub edx, ecx
push edx
jmp 0x55f654
test cl, 4
jne 0x55f65d
mov eax, dword [ebp - 0x12c]
mov edx, dword [eax]
test edx, edx
je 0x55f65d
mov eax, dword [ebp - 0x13c]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x11c]
mov eax, dword [eax]
sub eax, ecx
add eax, edx
push eax
push ecx
lea ecx, [ebp - 0x28]
call fcn.0052b470
mov esi, dword [ebp - 0x18]
lea edi, [ebp - 0x28]
and ebx, 0xfffffffb
or ebx, 2
cmp dword [ebp - 0x14], 0x10
push 2
cmovae edi, dword [ebp - 0x28]
mov dword [ebp - 0x6c], ebx
call fcn.005774c8
push eax
push esi
push 1
push edi
call fcn.0057ec89
mov edx, dword [ebp - 0x14]
add esp, 0x14
mov byte [ebp - 0x154], 1
cmp edx, 0x10
jb 0x55f6c3
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x55f6b9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x55f7e3
push edx
push ecx
call fcn.0056f898
add esp, 8
lea ecx, [ebp - 0x14c]
call fcn.00541270
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x70]
mov edi, dword [ebp - 0x38]
mov esi, dword [ebp - 0x60]
test eax, eax
jg 0x55f045
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x8c]
add edx, 4
mov dword [ebp - 0x8c], edx
lea eax, [eax + ecx*4]
cmp edx, eax
je 0x55f714
mov esi, dword [ebp - 0x80]
jmp 0x55eff0
xor bl, bl
jmp 0x55f782
mov ebx, dword [ebp - 0x64]
imul ebx, dword [ebp - 0x68]
lea ecx, [ebp - 0x2a]
mov eax, ebx
cdq
sub dword [edi + 0x60], eax
push ebx
sbb dword [edi + 0x64], edx
call fcn.0052b7d0
mov ecx, eax
mov dword [ebp - 0x94], ebx
lea esi, [edi + 0x54]
mov dword [ebp - 0x90], ecx
lea eax, [ebp - 0x94]
cmp esi, eax
je 0x55f766
mov eax, dword [esi + 4]
mov dword [ebp - 0x90], 0
mov dword [esi + 4], ecx
test eax, eax
je 0x55f764
push eax
mov ecx, esi
call fcn.0055ed60
mov dword [esi], ebx
lea ecx, [ebp - 0x94]
call fcn.0055ed20
push ebx
push dword [ebp - 0x7c]
push dword [edi + 0x58]
call fcn.00573df0
add esp, 0xc
mov bl, 1
lea ecx, [ebp - 0x5c]
call fcn.00556540
lea ecx, [ebp - 0xa8]
call fcn.00556540
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x55f7ab
mov eax, dword [ebp - 0x74]
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.00550290
lea ecx, [ebp - 0x84]
call fcn.00553720
lea ecx, [ebp - 0xb4]
call fcn.005599a0
mov al, bl
jmp 0x55f7c7
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0056f3c2
mov esp, ebp
pop ebp
ret
call fcn.0057a76e
jns 0x55f7da
push ebp
add dh, ah
invalid