Function at 0x55e010
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b8bce
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x63a404]
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 0x55e05b
cmp dword [edi + 0x58], eax
setne al
jmp 0x55e9d7
mov byte [edi + 4], 1
cmp dword [edi + 8], eax
je 0x55e9d5
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 0x55e9d5
push 0
push 4
push dword [edi + 0x64]
push dword [edi + 0x60]
call fcn.0056ee20
mov esi, eax
mov ecx, edx
mov eax, ebx
cdq
push edx
push eax
push ecx
push esi
call fcn.0056ee20
mov esi, eax
mov ecx, edx
mov eax, dword [ebp - 0x88]
cdq
cmp ecx, edx
jl 0x55e9d5
jg 0x55e0c9
cmp esi, eax
jb 0x55e9d5
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 0x55e0e9
or ecx, 0xffffffff
jmp 0x55e0f1
cmp ecx, 0x1000
jb 0x55e118
lea eax, [ecx + 0x23]
or edx, 0xffffffff
cmp eax, ecx
cmovbe eax, edx
push eax
call fcn.0056e7bf
add esp, 4
test eax, eax
je 0x55e9f3
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x55e12b
test ecx, ecx
je 0x55e129
push ecx
call fcn.0056e7bf
add esp, 4
mov ecx, eax
jmp 0x55e12b
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.00558950
mov ecx, dword [ebp - 0x80]
lea eax, [esi*4]
push eax
push 0xff
push ecx
call fcn.00573560
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.005555b0
push esi
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 3
call fcn.005555b0
push dword [edi + 8]
lea eax, [ebp - 0xa8]
mov byte [ebp - 4], 4
push eax
call fcn.0055dfb0
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.0055ed90
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x8c], edx
lea eax, [edx + eax*4]
cmp edx, eax
je 0x55e927
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 0x55e230
add eax, 4
mov dword [eax], 0x30
lea eax, [eax + 4]
inc ecx
cmp ecx, dword [edi + 0x14]
jl 0x55e221
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.0x55e282
jmp dword [eax*4 + 0x55e9f8]
add ebx, 1
mov dword [ebp - 0x44], ebx
je 0x55e601
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x55e601
cmp ebx, dword [ebp - 0x50]
jae 0x55e601
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + ebx*4]
cmp eax, dword [ebp - 0x5c]
jae 0x55e2bd
cmp dword [ecx + eax*4], ebx
je 0x55e920
cmp ebx, dword [ebp - 0x50]
jae 0x55e601
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + ebx*4]
lea edx, [eax + ebx*4]
cmp ecx, dword [ebp - 0x5c]
jae 0x55e2e0
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ecx*4], ebx
je 0x55e601
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 0x55e601
mov eax, dword [ebp - 0x80]
shr edx, 4
mov ebx, dword [eax + edx*4]
mov dword [ebp - 0x40], ebx
cmp ebx, 0xffffffff
jne 0x55e3c0
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x88]
jge 0x55e920
mov ebx, eax
mov dword [ebp - 0x40], ebx
test edx, edx
je 0x55e385
mov eax, dword [ebp - 0x98]
test eax, eax
je 0x55e385
mov edi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0xa8]
cmp edx, edi
jae 0x55e382
mov esi, dword [ebx + edx*4]
cmp esi, ecx
jae 0x55e354
cmp dword [eax + esi*4], edx
mov esi, dword [ebp - 0x30]
je 0x55e382
jmp 0x55e357
mov esi, dword [ebp - 0x30]
cmp edx, edi
jae 0x55e382
mov esi, dword [ebx + edx*4]
cmp esi, ecx
jae 0x55e367
cmp dword [eax + esi*4], edx
je 0x55e37f
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.0055ed90
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 0x55e440
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 0x55e417
mov edi, eax
movzx eax, byte [edi + ecx + 0x71]
cmp eax, edx
jne 0x55e414
inc ecx
cmp ecx, 0xff
jl 0x55e402
mov edi, dword [ebp - 0x48]
mov esi, dword [ebx + edx*4 + 4]
mov eax, esi
and eax, 0x30
cmp al, 0x30
jne 0x55e42a
mov dword [ebx + edx*4 + 4], edi
jmp 0x55e432
cmp esi, edi
jne 0x55e920
mov esi, dword [ebp - 0x30]
inc ecx
mov dl, byte [esi + 5]
movzx eax, dl
cmp ecx, eax
jle 0x55e3f0
test byte [esi + 6], 1
je 0x55e4df
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 0x55e4df
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 0x55e4b5
mov ebx, ecx
movzx ecx, byte [ebx + eax + 0x71]
cmp ecx, edx
jne 0x55e4b2
inc eax
cmp eax, 0xff
jl 0x55e4a1
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 0x55e4cf
mov ecx, dword [ebp - 0x34]
mov dword [ecx + edx*4 + 4], edi
jmp 0x55e4d7
cmp esi, edi
jne 0x55e920
inc eax
cmp eax, ebx
jle 0x55e490
mov esi, dword [ebp - 0x30]
test byte [esi], 8
jne 0x55e8e2
mov ebx, dword [ebp - 0x44]
add ebx, 1
mov dword [ebp - 0x44], ebx
je 0x55e53f
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x55e53f
cmp ebx, dword [ebp - 0x50]
jae 0x55e53f
mov eax, dword [ebp - 0x54]
mov eax, dword [eax + ebx*4]
cmp eax, dword [ebp - 0x5c]
jae 0x55e513
cmp dword [ecx + eax*4], ebx
je 0x55e920
cmp ebx, dword [ebp - 0x50]
jae 0x55e53f
mov eax, dword [ebp - 0x54]
mov ecx, dword [eax + ebx*4]
lea edx, [eax + ebx*4]
cmp ecx, dword [ebp - 0x5c]
jae 0x55e52e
mov eax, dword [ebp - 0x4c]
cmp dword [eax + ecx*4], ebx
je 0x55e53f
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 0x55e601
test dl, 8
jne 0x55e57f
lea esi, [ebx + 1]
lea eax, [ebp - 0x5c]
push esi
push eax
call fcn.0055dfb0
add esp, 8
test al, al
je 0x55e920
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 0x55e582
mov ebx, dword [ebp - 0x3c]
mov eax, edx
and eax, 7
cmp eax, 3
jne 0x55e59f
mov ecx, dword [esi + 4]
cmp ecx, 0xa
jge 0x55e5aa
mov eax, 0x20
shl eax, cl
or ebx, eax
jmp 0x55e5a7
cmp eax, 4
jne 0x55e5aa
or ebx, dword [esi + 4]
mov dword [ebp - 0x3c], ebx
shr edx, 4
lea eax, [ebp - 0x5c]
push edx
push eax
call fcn.0055dfb0
add esp, 8
test al, al
je 0x55e920
mov ebx, dword [esi]
shr ebx, 4
mov dword [ebp - 0x44], ebx
jmp 0x55e601
cmp byte [ebp - 0x29], 0
jne 0x55e920
mov eax, dword [ebp - 0x3c]
mov dword [ecx], eax
test byte [esi], 8
mov byte [ebp - 0x29], 1
jne case.0x55e282.7
inc ebx
lea eax, [ebp - 0x5c]
push ebx
push eax
mov dword [ebp - 0x44], ebx
call fcn.0055dfb0
add esp, 8
test al, al
je 0x55e920
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.0x0055e282
lea eax, [ebp - 0x14c]
mov byte [ebp - 0x154], 0
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x14c], 0x625210
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.005429f0
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.0056e7bf
mov esi, eax
add esp, 4
test esi, esi
je 0x55e6c4
push 1
mov byte [ebp - 4], 7
call fcn.00570b36
add esp, 4
mov dword [esi + 4], eax
jmp 0x55e6c6
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 0x622ca4
push 0x1bf
push 0x624918
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.005436e0
add esp, 8
push eax
call fcn.005436e0
add esp, 8
mov ecx, eax
call fcn.00541d70
push eax
call fcn.005436e0
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.005436e0
add esp, 8
mov ecx, eax
call fcn.00541d70
cmp byte [ebp - 0x154], 0
mov byte [ebp - 4], 0xa
jne 0x55e8d3
lea eax, [ebp - 0x14c]
push 0x610e40
push eax
call fcn.005436e0
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 0x55e83e
mov eax, dword [ebp - 0x128]
mov edx, dword [eax]
test edx, edx
je 0x55e83e
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 0x55e864
test cl, 4
jne 0x55e86d
mov eax, dword [ebp - 0x12c]
mov edx, dword [eax]
test edx, edx
je 0x55e86d
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.0052a680
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.005766b8
push eax
push esi
push 1
push edi
call fcn.0057de79
mov edx, dword [ebp - 0x14]
add esp, 0x14
mov byte [ebp - 0x154], 1
cmp edx, 0x10
jb 0x55e8d3
mov ecx, dword [ebp - 0x28]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x55e8c9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x55e9f3
push edx
push ecx
call fcn.0056ea89
add esp, 8
lea ecx, [ebp - 0x14c]
call fcn.00540480
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 0x55e255
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 0x55e924
mov esi, dword [ebp - 0x80]
jmp 0x55e200
xor bl, bl
jmp 0x55e992
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.0052a9e0
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 0x55e976
mov eax, dword [esi + 4]
mov dword [ebp - 0x90], 0
mov dword [esi + 4], ecx
test eax, eax
je 0x55e974
push eax
mov ecx, esi
call fcn.0055df70
mov dword [esi], ebx
lea ecx, [ebp - 0x94]
call fcn.0055df30
push ebx
push dword [ebp - 0x7c]
push dword [edi + 0x58]
call fcn.00572fe0
add esp, 0xc
mov bl, 1
lea ecx, [ebp - 0x5c]
call fcn.00555750
lea ecx, [ebp - 0xa8]
call fcn.00555750
mov ecx, dword [ebp - 0x7c]
test ecx, ecx
je 0x55e9bb
mov eax, dword [ebp - 0x74]
sub eax, ecx
push eax
push ecx
lea ecx, [ebp - 0x7c]
call fcn.0054f4a0
lea ecx, [ebp - 0x84]
call fcn.00552930
lea ecx, [ebp - 0xb4]
call fcn.00558bb0
mov al, bl
jmp 0x55e9d7
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.0056e5b3
mov esp, ebp
pop ebp
ret
call fcn.0057995e
mov edx, esp
push ebp
add dh, dh
loop 0x55ea54
add byte [edi - 0x1b], al
push ebp
add byte [edi - 0x1b], al
push ebp
add ah, cl
in eax, 0x55
add byte [edi - 0x1b], al
push ebp
add ch, ah
call 0xcd21ea6b
int3
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xa0], eax
je 0x55eaad
cmp dword [ebp + 0x14], 2
je 0x55eaad
push 0xdb
push str.D:DeviplayGameManagersUGM3_MergingBackUSSussexelibsgoogle_re2_re2_2020_03_03_re2onepass.cc
lea ecx, [ebp - 0x140]
call fcn.00552630
add eax, 8
mov dword [ebp - 4], 0
push str.Cannot_use_SearchOnePass_for_unanchored_matches.
push eax
call fcn.005436e0
add esp, 8
lea ecx, [ebp - 0x140]
call fcn.005529e0
xor al, al
jmp 0x55ed68
mov eax, dword [ebp + 0x1c]
mov esi, 2
lea ecx, [eax + eax]
cmp ecx, esi
mov dword [ebp - 0x94], ecx
cmovge esi, ecx
mov dword [ebp - 0x98], esi
test esi, esi
jle 0x55eae1
xor eax, eax
lea edi, [ebp - 0x60]
mov ecx, esi
rep stosd dword es:[edi], eax
test esi, esi
jle 0x55eae1
mov ecx, esi
lea edi, [ebp - 0x38]
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x78]
mov eax, dword [edi]
mov edi, dword [edi + 4]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edi
test eax, eax
jne 0x55eafe
mov eax, dword [edx]
mov edi, dword [edx + 4]
mov dword [ebp - 0x80], eax
mov dword [ebp - 0x7c], edi
cmp byte [ebx], 0
je 0x55eb07
cmp eax, dword [edx]
jne 0x55eaa6
mov cl, byte [ebx + 1]
test cl, cl
je 0x55eb1e
mov ecx, dword [edx + 4]
add eax, edi
add ecx, dword [edx]
cmp eax, ecx
jne 0x55eaa6
mov cl, byte [ebx + 1]
test cl, cl
mov eax, dword [ebx + 0x14]
mov edi, 2
mov ecx, dword [ebx + 0x58]
cmove edi, dword [ebp + 0x14]
mov dword [ebp - 0x6c], edi
lea eax, [eax*4 + 4]
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x90], eax
lea eax, [ebx + 0x70]
mov ebx, dword [edx]
mov dword [ebp - 0x8c], eax
mov eax, dword [edx + 4]
mov edx, ecx
add eax, ebx
mov byte [ebp - 0x61], 0
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x38], ebx
mov edx, dword [edx]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x70], edx
cmp ebx, eax
jae 0x55ecce
movzx eax, byte [ebx]
mov dword [ebp - 0x78], edx
mov edx, dword [ebp - 0x8c]
movzx eax, byte [eax + edx]
mov edx, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x68], edx
test dl, 0x3f
je 0x55ebb4
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.00556560
mov edx, dword [ebp - 0x68]
not eax
and eax, edx
add esp, 8
test al, 0x3f
je 0x55ebb4
mov dword [ebp - 0x74], 0
mov eax, 0x30
jmp 0x55ebcb
mov eax, edx
shr eax, 0x10
imul eax, dword [ebp - 0x90]
add eax, dword [ebp - 0x84]
mov dword [ebp - 0x74], eax
mov eax, dword [eax]
mov dword [ebp - 0x70], eax
cmp edi, 2
je 0x55ec80
mov edx, dword [ebp - 0x78]
cmp edx, 0x30
je 0x55ec7d
mov edi, dword [ebp - 0x68]
and edi, 0x40
mov dword [ebp - 0x9c], edi
jne 0x55ebf9
test al, 0x3f
je 0x55ec7a
test dl, 0x3f
je 0x55ec16
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.00556560
mov edx, dword [ebp - 0x78]
not eax
and eax, edx
add esp, 8
test al, 0x3f
jne 0x55ec7a
mov eax, dword [ebp - 0x94]
cmp eax, 2
jle 0x55ec38
lea ecx, [eax - 2]
lea esi, [ebp - 0x58]
lea edi, [ebp - 0x30]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x98]
mov edi, dword [ebp - 0x9c]
cmp dword [ebp + 0x1c], 1
jle 0x55ec64
test edx, 0x7f80
je 0x55ec64
mov ecx, 2
cmp esi, ecx
jle 0x55ec64
nop
mov eax, 0x20
shl eax, cl
test edx, eax
je 0x55ec5f
mov dword [ebp + ecx*4 - 0x38], ebx
inc ecx
cmp ecx, esi
jl 0x55ec50
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x61], 1
test eax, eax
jne 0x55ec7a
test edi, edi
jne 0x55ed40
mov edi, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0x55ed36
test edx, 0x7f80
je 0x55ecb9
cmp dword [ebp + 0x1c], 1
jle 0x55ecb9
mov ecx, 2
cmp esi, ecx
jle 0x55ecb6
mov eax, 0x20
shl eax, cl
test edx, eax
je 0x55ecb1
mov dword [ebp + ecx*4 - 0x60], ebx
inc ecx
cmp ecx, esi
jl 0x55eca2
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x70]
inc ebx
cmp ebx, dword [ebp - 0x88]
jb 0x55eb72
mov edx, dword [ecx]
mov dword [ebp - 0x70], edx
cmp edx, 0x30
je 0x55ed36
test dl, 0x3f
je 0x55ecf0
lea eax, [ebp - 0x80]
push ebx
push eax
call fcn.00556560
mov edx, dword [ebp - 0x70]
not eax
and eax, edx
add esp, 8
test al, 0x3f
jne 0x55ed36
cmp dword [ebp + 0x1c], 1
jle 0x55ed1b
test edx, 0x7f80
je 0x55ed1b
mov ecx, 2
cmp esi, ecx
jle 0x55ed1b
mov eax, 0x20
shl eax, cl
test edx, eax
je 0x55ed16
mov dword [ebp + ecx*4 - 0x60], ebx
inc ecx
cmp ecx, esi
jl 0x55ed07
mov ecx, 2
cmp esi, ecx
jle 0x55ed31
mov eax, dword [ebp + ecx*4 - 0x60]
mov dword [ebp + ecx*4 - 0x38], eax
inc ecx
cmp ecx, esi
jl 0x55ed24
mov dword [ebp - 0x34], ebx
jmp 0x55ed40
cmp byte [ebp - 0x61], 0
je 0x55eaa6
mov ebx, dword [ebp + 0x1c]
xor edx, edx
test ebx, ebx
jle 0x55ed66
mov esi, dword [ebp - 0xa0]
nop
mov eax, dword [ebp + edx*8 - 0x38]
mov ecx, dword [ebp + edx*8 - 0x34]
sub ecx, eax
mov dword [esi + edx*8], eax
mov dword [esi + edx*8 + 4], ecx
inc edx
cmp edx, ebx
jl 0x55ed50
mov al, 1
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.0056e5b3
mov esp, ebp
pop ebp
ret 0x18