Function at 0x5e4800
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff004
push eax
add esp, 0xfffffe28
xor eax, eax
test dword [esp], ebx
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 4], 1
mov dword [ebp - 0x18], 0xffffffff
mov dword [ebp - 0x1c], 0xffffffff
mov dword [ebp - 0x20], eax
xor eax, eax
mov dword [ebp - 0x28], eax
lea esi, [ebp - 0xe8]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], eax
cmp dword [ebp + 0x14], 0
jne 0x5e485f
cmp dword [ebp + 0x10], 0
je 0x5e4858
mov edx, dword [ebp + 0x10]
mov dword [edx], 0x63
xor eax, eax
jmp 0x5e53c4
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [edx], ecx
cmp dword [ebp + 0x10], 0
je 0x5e4873
mov ecx, dword [ebp + 0x10]
xor eax, eax
mov dword [ecx], eax
cmp dword [ebp + 0x18], 0
jne 0x5e4885
mov dword [ebp - 0x20], 0x10
jmp 0x5e5280
mov edx, dword [ebp + 0x18]
xor eax, eax
mov dword [edx], eax
cmp dword [ebp + 0x1c], 0
jne 0x5e4899
mov dword [ebp + 0x1c], 0x688d3c
mov edx, dword [ebp + 0x1c]
mov dword [esi], edx
mov ecx, dword [ebp + 0x1c]
add ecx, 0x100
mov dword [esi + 4], ecx
mov ecx, dword [ebp + 0x1c]
add ecx, 0x200
mov dword [esi + 8], ecx
mov eax, dword [ebp + 0x1c]
add eax, 0x340
mov dword [esi + 0xc], eax
test dword [ebp + 0xc], 0xd8008580
je 0x5e48d6
mov dword [ebp - 0x20], 0x11
jmp 0x5e5275
test byte [ebp + 0xe], 1
je 0x5e48e3
mov dword [ebp - 0x28], 1
xor edx, edx
mov dword [esi + 0x64], edx
jmp 0x5e4c3b
xor edi, edi
xor eax, eax
mov dword [ebp - 0x3c], eax
push 5
push str.UTF8_
mov edx, dword [ebp - 0x38]
add edx, ebx
add edx, 2
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4924
add ebx, 7
or dword [ebp + 0xc], 0x800
jmp 0x5e4c3b
push 4
push str.UTF_
mov ecx, dword [ebp - 0x38]
add ecx, ebx
add ecx, 2
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4954
add ebx, 6
or dword [ebp + 0xc], 0x800
jmp 0x5e4c3b
push 4
push str.UCP_
mov ecx, dword [ebp - 0x38]
add ecx, ebx
add ecx, 2
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4984
add ebx, 6
or dword [ebp + 0xc], 0x20000000
jmp 0x5e4c3b
push 0x10
push str.NO_AUTO_POSSESS_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e49b4
add ebx, 0x12
or dword [ebp + 0xc], 0x20000
jmp 0x5e4c3b
push 0xd
push str.NO_START_OPT_
mov edx, dword [ebp - 0x38]
add edx, ebx
add edx, 2
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e49e4
add ebx, 0xf
or dword [ebp + 0xc], 0x4000000
jmp 0x5e4c3b
push 0xc
push str.LIMIT_MATCH
mov ecx, dword [ebp - 0x38]
add ecx, ebx
add ecx, 2
push ecx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4a73
xor eax, eax
lea edi, [ebx + 0xe]
mov dword [ebp - 0x40], eax
jmp 0x5e4a2c
cmp dword [ebp - 0x40], 0x19999998
ja 0x5e4a3f
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
add ecx, ecx
xor edx, edx
mov dl, byte [eax + edi]
lea ecx, [ecx + ecx*4]
add edx, ecx
sub edx, 0x30
inc edi
mov dword [ebp - 0x40], edx
mov ecx, dword [ebp - 0x38]
xor eax, eax
mov al, byte [ecx + edi]
push eax
call sub.msvcrt.dll_isdigit
pop ecx
test eax, eax
jne 0x5e4a0a
mov edx, edi
mov eax, dword [ebp - 0x38]
inc edi
movzx edx, byte [eax + edx]
cmp edx, 0x29
jne 0x5e4c5a
mov ecx, dword [ebp - 0x40]
cmp ecx, dword [ebp - 0x18]
jae 0x5e4a67
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x18], eax
or dword [esi + 0x64], 0x2000
mov ebx, edi
jmp 0x5e4c3b
push 0x10
push str.LIMIT_RECURSION
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4afd
xor edx, edx
lea edi, [ebx + 0x12]
mov dword [ebp - 0x44], edx
jmp 0x5e4abb
cmp dword [ebp - 0x44], 0x19999998
ja 0x5e4ace
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x38]
add ecx, ecx
xor edx, edx
mov dl, byte [eax + edi]
lea ecx, [ecx + ecx*4]
add edx, ecx
sub edx, 0x30
inc edi
mov dword [ebp - 0x44], edx
mov ecx, dword [ebp - 0x38]
xor eax, eax
mov al, byte [ecx + edi]
push eax
call sub.msvcrt.dll_isdigit
pop ecx
test eax, eax
jne 0x5e4a99
mov edx, edi
mov eax, dword [ebp - 0x38]
inc edi
movzx edx, byte [eax + edx]
cmp edx, 0x29
jne 0x5e4c5a
mov ecx, dword [ebp - 0x44]
cmp ecx, dword [ebp - 0x1c]
jae 0x5e4af6
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
or dword [esi + 0x64], 0x4000
mov ebx, edi
jmp 0x5e4c3b
push 3
push 0x678113
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4b26
add ebx, 5
mov edi, 0x100000
jmp 0x5e4c12
push 3
push 0x678117
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4b4f
add ebx, 5
mov edi, 0x200000
jmp 0x5e4c12
push 5
push str.CRLF_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4b78
add ebx, 7
mov edi, 0x300000
jmp 0x5e4c12
push 4
push str.ANY_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4b9e
add ebx, 6
mov edi, 0x400000
jmp 0x5e4c12
push 8
push str.ANYCRLF_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4bc4
add ebx, 0xa
mov edi, 0x500000
jmp 0x5e4c12
push 0xc
push str.BSR_ANYCRLF_
mov eax, dword [ebp - 0x38]
add eax, ebx
add eax, 2
push eax
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4bec
mov dword [ebp - 0x3c], 0x800000
add ebx, 0xe
jmp 0x5e4c12
push 0xc
push str.BSR_UNICODE_
mov edx, dword [ebp - 0x38]
add edx, ebx
add edx, 2
push edx
call sub.msvcrt.dll_strncmp
add esp, 0xc
test eax, eax
jne 0x5e4c12
mov dword [ebp - 0x3c], 0x1000000
add ebx, 0xe
test edi, edi
je 0x5e4c26
mov ecx, dword [ebp + 0xc]
and ecx, 0xff8fffff
or edi, ecx
mov dword [ebp + 0xc], edi
jmp 0x5e4c3b
cmp dword [ebp - 0x3c], 0
je 0x5e4c5a
mov ecx, dword [ebp + 0xc]
and ecx, 0xfe7fffff
or ecx, dword [ebp - 0x3c]
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp - 0x38]
xor edx, edx
mov dl, byte [eax + ebx]
cmp edx, 0x28
jne 0x5e4c5a
mov ecx, dword [ebp - 0x38]
xor eax, eax
mov al, byte [ecx + ebx + 1]
cmp eax, 0x2a
je 0x5e48ed
test byte [ebp + 0xd], 8
setne dl
and edx, 1
mov dword [ebp - 0x24], edx
cmp dword [ebp - 0x24], 0
je 0x5e4c7f
cmp dword [ebp - 0x28], 0
je 0x5e4c7f
mov dword [ebp - 0x20], 0x4e
jmp 0x5e5280
cmp dword [ebp - 0x24], 0
je 0x5e4cb0
test byte [ebp + 0xd], 0x20
jne 0x5e4cb0
mov ecx, dword [ebp + 0x18]
push ecx
push 0xffffffffffffffff
mov eax, dword [ebp + 8]
push eax
call fcn.005f7c34
add esp, 0xc
mov dword [ebp - 0x20], eax
test eax, eax
je 0x5e4cb0
mov dword [ebp - 0x20], 0x2c
jmp 0x5e5280
mov edx, dword [ebp + 0xc]
and edx, 0x1800000
cmp edx, 0x1800000
jne 0x5e4ccd
mov dword [ebp - 0x20], 0x38
jmp 0x5e5275
mov ecx, dword [ebp + 0xc]
and ecx, 0x700000
cmp ecx, 0x300000
jg 0x5e4cf7
je 0x5e4d1e
sub ecx, 1
jb 0x5e4d09
sub ecx, 0xfffff
je 0x5e4d10
sub ecx, 0x100000
je 0x5e4d17
jmp 0x5e4d31
sub ecx, 0x400000
je 0x5e4d25
sub ecx, 0x100000
je 0x5e4d2a
jmp 0x5e4d31
mov eax, 0xa
jmp 0x5e4d3d
mov eax, 0xd
jmp 0x5e4d3d
mov eax, 0xa
jmp 0x5e4d3d
mov eax, 0xd0a
jmp 0x5e4d3d
or eax, 0xffffffff
jmp 0x5e4d3d
mov eax, 0xfffffffe
jmp 0x5e4d3d
mov dword [ebp - 0x20], 0x38
jmp 0x5e5275
cmp eax, 0xfffffffe
jne 0x5e4d4b
mov dword [esi + 0x7c], 2
jmp 0x5e4d96
test eax, eax
jge 0x5e4d58
mov dword [esi + 0x7c], 1
jmp 0x5e4d96
xor edx, edx
cmp eax, 0xff
mov dword [esi + 0x7c], edx
jle 0x5e4d86
mov ecx, eax
sar ecx, 8
mov dword [esi + 0x80], 2
and cl, 0xff
and al, 0xff
mov byte [esi + 0x84], cl
mov byte [esi + 0x85], al
jmp 0x5e4d96
mov dword [esi + 0x80], 1
mov byte [esi + 0x84], al
xor ecx, ecx
xor eax, eax
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x50], eax
xor edx, edx
xor eax, eax
mov dword [esi + 0x44], edx
mov dword [esi + 0x40], edx
mov dword [esi + 0x30], eax
xor ecx, ecx
mov dword [esi + 0x34], ecx
xor ecx, ecx
mov dword [esi + 0x2c], ecx
xor eax, eax
mov dword [esi + 0x78], eax
xor edx, edx
mov dword [esi + 0x54], edx
lea ecx, [ebp - 0x10e8]
mov dword [esi + 0x14], ecx
lea eax, [ebp - 0x10e8]
mov dword [esi + 0x20], eax
lea edx, [ebp - 0x10e8]
mov dword [esi + 0x10], edx
lea ecx, [ebp - 0x11d8]
mov dword [esi + 0x3c], 0x1000
mov dword [esi + 0x28], ecx
mov dword [esi + 0x38], 0x14
mov eax, dword [ebp + 8]
mov dword [esi + 0x18], eax
mov edx, dword [ebp + 8]
push edx
call sub.msvcrt.dll_strlen
add eax, dword [ebp + 8]
pop ecx
xor ecx, ecx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x68], ecx
xor eax, eax
mov dword [esi + 0x58], eax
xor edx, edx
mov dword [esi + 0x5c], edx
xor ecx, ecx
mov dword [esi + 0x48], ecx
xor edx, edx
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x10e8]
mov dword [esi + 0x60], eax
mov dword [esi + 0x24], edx
add dword [ebp - 0x38], ebx
mov dword [ebp - 0x30], ecx
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 4]
lea ecx, [ebp - 0xc]
mov byte [eax], 0x83
push edx
push esi
push 0
push ecx
lea eax, [ebp - 0x14]
lea edx, [ebp - 8]
push eax
push edx
lea ecx, [ebp - 0x10]
lea eax, [ebp - 0x20]
push ecx
push 0
push 0
push 0
push 0
push eax
lea edx, [ebp - 0x38]
lea ecx, [ebp - 0x30]
push edx
push ecx
mov eax, dword [esi + 0x60]
push eax
call fcn.005e3dd4
add esp, 0x3c
cmp dword [ebp - 0x20], 0
jne 0x5e5275
cmp dword [ebp - 4], 0x10000
jle 0x5e4e90
mov dword [ebp - 0x20], 0x14
jmp 0x5e5275
cmp dword [esi + 0x78], 0
je 0x5e4ea7
cmp dword [esi + 0x54], 0
jbe 0x5e4ea7
mov edx, dword [esi + 0x54]
add edx, edx
add edx, dword [ebp - 4]
mov dword [ebp - 4], edx
mov ecx, dword [esi + 0x30]
imul ecx, dword [esi + 0x34]
add ecx, dword [ebp - 4]
add ecx, 0x38
mov dword [ebp - 0x2c], ecx
mov eax, dword [ebp - 0x2c]
push eax
call dword [0x676b2c]
pop ecx
mov edi, eax
test edi, edi
jne 0x5e4ed4
mov dword [ebp - 0x20], 0x15
jmp 0x5e5275
mov dword [edi], 0x50435245
mov eax, dword [ebp - 0x2c]
mov dword [edi + 4], eax
mov edx, dword [esi + 0x60]
mov dword [edi + 8], edx
mov ecx, dword [esi + 0x64]
mov dword [edi + 0xc], ecx
mov ecx, dword [ebp - 0x18]
mov dword [edi + 0x10], ecx
mov eax, dword [ebp - 0x1c]
mov dword [edi + 0x14], eax
mov eax, 0x688d3c
mov word [edi + 0x18], 0
mov word [edi + 0x1a], 0
mov word [edi + 0x22], 0x38
mov dx, word [esi + 0x34]
mov word [edi + 0x24], dx
mov cx, word [esi + 0x30]
mov word [edi + 0x26], cx
mov word [edi + 0x28], 0
cmp eax, dword [ebp + 0x1c]
jne 0x5e4f2e
xor edx, edx
jmp 0x5e4f31
mov edx, dword [ebp + 0x1c]
mov dword [edi + 0x30], edx
xor eax, eax
xor ecx, ecx
mov dword [edi + 0x34], eax
mov word [edi + 0x2e], cx
xor edx, edx
mov word [edi + 0x2c], cx
mov word [edi + 0x2a], cx
xor ecx, ecx
mov eax, dword [esi + 0x40]
mov dword [esi + 0x44], eax
mov dword [esi + 0x58], edx
mov dword [esi + 0x5c], ecx
xor eax, eax
mov dword [esi + 0x40], eax
xor edx, edx
mov dword [esi + 0x48], edx
movzx ecx, word [edi + 0x22]
add ecx, edi
mov dword [esi + 0x2c], ecx
movzx eax, word [edi + 0x24]
movzx edx, word [edi + 0x26]
imul edx
add eax, dword [esi + 0x2c]
xor edx, edx
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x34]
mov dword [esi + 0x14], ecx
xor ecx, ecx
mov eax, dword [esi + 0x10]
mov dword [esi + 0x20], eax
mov dword [esi + 0x68], edx
mov dword [esi + 0x6c], ecx
xor eax, eax
xor edx, edx
mov dword [esi + 0x70], eax
xor ecx, ecx
mov dword [esi + 0x74], edx
mov dword [esi + 0x24], ecx
cmp dword [esi + 0x30], 0
jle 0x5e4ff7
mov eax, dword [esi + 0x30]
xor ecx, ecx
mov dword [ebp - 0x48], eax
mov edx, dword [esi + 0x28]
mov dword [ebp - 0x4c], edx
mov dword [esi + 0x30], ecx
cmp dword [ebp - 0x48], 0
jle 0x5e4fe6
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 8]
push edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 4]
push eax
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx]
push ecx
push esi
call fcn.005e4748
add esp, 0x10
dec dword [ebp - 0x48]
add dword [ebp - 0x4c], 0xc
cmp dword [ebp - 0x48], 0
jg 0x5e4fbc
cmp dword [esi + 0x38], 0x14
jle 0x5e4ff7
mov eax, dword [esi + 0x28]
push eax
call dword [0x676b30]
pop ecx
add ebx, dword [ebp + 8]
lea ecx, [ebp - 0x14]
mov dword [ebp - 0x38], ebx
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x30], edx
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 0x30]
mov byte [eax], 0x83
push 0
push esi
push 0
push edx
push ecx
lea eax, [ebp - 8]
lea edx, [ebp - 0x10]
push eax
push edx
push 0
push 0
push 0
lea ecx, [ebp - 0x20]
push 0
push ecx
lea eax, [ebp - 0x38]
lea edx, [ebp - 0x30]
push eax
push edx
mov ecx, dword [edi + 8]
push ecx
call fcn.005e3dd4
mov ax, word [esi + 0x40]
add esp, 0x3c
mov word [edi + 0x1e], ax
mov dx, word [esi + 0x4c]
mov word [edi + 0x20], dx
mov cx, word [esi + 0x48]
mov word [edi + 0x1c], cx
mov eax, dword [esi + 0x64]
or eax, 1
mov dword [edi + 0xc], eax
cmp dword [esi + 0x6c], 0
je 0x5e5071
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], 0xffffffff
cmp dword [ebp - 0x20], 0
jne 0x5e5086
mov ecx, dword [ebp - 0x38]
cmp byte [ecx], 0
je 0x5e5086
mov dword [ebp - 0x20], 0x16
mov eax, dword [ebp - 0x30]
mov byte [eax], 0
inc dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x34]
cmp edx, dword [ebp - 4]
jle 0x5e50a1
mov dword [ebp - 0x20], 0x17
mov ecx, dword [esi + 0x20]
cmp ecx, dword [esi + 0x10]
jbe 0x5e5148
mov dword [ebp - 0x50], 0xffffffff
xor eax, eax
mov dword [ebp - 0x54], eax
jmp 0x5e5136
sub dword [esi + 0x20], 2
mov eax, dword [esi + 0x20]
xor ebx, ebx
mov edx, dword [ebp - 0x34]
xor ecx, ecx
mov bl, byte [eax]
movzx eax, byte [eax + 1]
shl ebx, 8
or ebx, eax
mov eax, dword [ebp - 0x34]
mov cl, byte [edx + ebx]
xor edx, edx
shl ecx, 8
mov dl, byte [eax + ebx + 1]
or ecx, edx
mov dword [ebp - 0x58], ecx
mov ecx, dword [ebp - 0x58]
cmp ecx, dword [ebp - 0x50]
je 0x5e510d
mov ecx, dword [ebp - 0x58]
push ecx
mov eax, dword [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x34]
push edx
call fcn.005dd104
add esp, 0xc
mov dword [ebp - 0x54], eax
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x50], ecx
cmp dword [ebp - 0x54], 0
jne 0x5e511c
mov dword [ebp - 0x20], 0x35
jmp 0x5e5136
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x54]
sub eax, dword [ebp - 0x34]
mov ecx, eax
sar ecx, 8
mov byte [edx + ebx], cl
mov edx, dword [ebp - 0x34]
and al, 0xff
mov byte [edx + ebx + 1], al
cmp dword [ebp - 0x20], 0
jne 0x5e5148
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x10]
ja 0x5e50bb
cmp dword [esi + 0x3c], 0x1000
jle 0x5e515c
mov eax, dword [esi + 0x10]
push eax
call dword [0x676b30]
pop ecx
xor edx, edx
mov dword [esi + 0x10], edx
cmp dword [ebp - 0x20], 0
jne 0x5e5178
mov cx, word [edi + 0x20]
cmp cx, word [edi + 0x1e]
jbe 0x5e5178
mov dword [ebp - 0x20], 0xf
test byte [ebp + 0xe], 2
jne 0x5e518f
push esi
mov eax, dword [ebp - 0x24]
push eax
mov edx, dword [ebp - 0x34]
push edx
call fcn.005deb5c
add esp, 0xc
cmp dword [esi + 0x74], 0
je 0x5e5267
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x24]
push ecx
mov eax, dword [ebp - 0x34]
push eax
call fcn.005dd104
add esp, 0xc
mov ebx, eax
test ebx, ebx
je 0x5e5267
xor eax, eax
xor edx, edx
mov al, byte [ebx + 1]
mov dl, byte [ebx + 2]
shl eax, 8
or eax, edx
jne 0x5e524b
xor ecx, ecx
xor eax, eax
mov cl, byte [ebx - 2]
mov al, byte [ebx - 1]
shl ecx, 8
or ecx, eax
add ecx, ebx
add ecx, 0xfffffffd
mov dword [ebp - 0x5c], ecx
xor ecx, ecx
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx]
mov dword [ebp - 0x60], ecx
mov ecx, dword [ebp - 0x5c]
mov byte [ecx], 0
push esi
push 1
test byte [edi + 9], 8
setne al
and eax, 1
push eax
push ebx
call fcn.005dcd4c
mov ecx, dword [ebp - 0x5c]
add esp, 0x10
mov dl, byte [ebp - 0x60]
test eax, eax
mov byte [ecx], dl
jge 0x5e5236
cmp eax, 0xfffffffe
jne 0x5e5220
mov edx, 0x24
jmp 0x5e5231
cmp eax, 0xfffffffc
jne 0x5e522c
mov edx, 0x46
jmp 0x5e5231
mov edx, 0x19
mov dword [ebp - 0x20], edx
jmp 0x5e5267
cmp eax, dword [esi + 0x48]
jle 0x5e523e
mov dword [esi + 0x48], eax
mov ecx, eax
sar ecx, 8
and al, 0xff
mov byte [ebx + 1], cl
mov byte [ebx + 2], al
add ebx, 3
push 0xffffffffffffffff
mov eax, dword [ebp - 0x24]
push eax
push ebx
call fcn.005dd104
add esp, 0xc
mov ebx, eax
test ebx, ebx
jne 0x5e51b5
cmp dword [ebp - 0x20], 0
je 0x5e52a4
push edi
call dword [0x676b30]
pop ecx
mov eax, dword [ebp - 0x38]
mov edx, dword [ebp + 0x18]
sub eax, dword [ebp + 8]
mov dword [edx], eax
mov ecx, dword [ebp - 0x20]
push ecx
call fcn.005dc158
pop ecx
mov edx, dword [ebp + 0x14]
mov dword [edx], eax
cmp dword [ebp + 0x10], 0
je 0x5e529d
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
xor eax, eax
jmp 0x5e53c4
test byte [edi + 8], 0x10
jne 0x5e5337
push 0
push esi
push 0
mov edx, dword [ebp - 0x34]
push edx
call fcn.005e4208
add esp, 0x10
test eax, eax
je 0x5e52c9
or dword [edi + 8], 0x10
jmp 0x5e5337
cmp dword [ebp - 8], 0
jge 0x5e52e4
push 0
lea ecx, [ebp - 8]
push ecx
mov eax, dword [ebp - 0x34]
push eax
call fcn.005e45a4
add esp, 0xc
mov dword [ebp - 0x10], eax
cmp dword [ebp - 8], 0
jl 0x5e531b
mov dx, word [ebp - 0x10]
and dx, 0xff
mov word [edi + 0x18], dx
test byte [ebp - 8], 1
je 0x5e5315
movzx ecx, word [edi + 0x18]
mov ebx, dword [esi + 4]
xor eax, eax
mov al, byte [ebx + ecx]
movzx edx, word [edi + 0x18]
cmp eax, edx
je 0x5e5315
or dword [edi + 0xc], 0x20
or dword [edi + 0xc], 0x10
jmp 0x5e5337
push 0
push esi
push 0
mov ecx, dword [ebp - 0x34]
push ecx
call fcn.005e439c
add esp, 0x10
test eax, eax
je 0x5e5337
or dword [edi + 0xc], 0x100
cmp dword [ebp - 0xc], 0
jl 0x5e537a
test byte [edi + 8], 0x10
je 0x5e5349
test byte [ebp - 0xc], 2
je 0x5e537a
mov ax, word [ebp - 0x14]
and ax, 0xff
mov word [edi + 0x1a], ax
test byte [ebp - 0xc], 1
je 0x5e5376
movzx edx, word [edi + 0x1a]
mov ecx, dword [esi + 4]
xor eax, eax
mov al, byte [ecx + edx]
movzx edx, word [edi + 0x1a]
cmp eax, edx
je 0x5e5376
or dword [edi + 0xc], 0x80
or dword [edi + 0xc], 0x40
push 0
push esi
mov ecx, dword [ebp - 0x24]
push ecx
mov eax, dword [ebp - 0x30]
push eax
mov edx, dword [ebp - 0x34]
push edx
call fcn.005dd354
add esp, 0x14
test eax, eax
je 0x5e539e
or dword [edi + 0xc], 0x8000
jmp 0x5e53c2
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x34]
xor eax, eax
mov al, byte [ecx + 1]
xor ecx, ecx
shl eax, 8
mov cl, byte [edx + 2]
or eax, ecx
add dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
xor edx, edx
mov dl, byte [eax]
cmp edx, 0x77
je 0x5e537a
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret