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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffed4
xor eax, eax
xor edx, edx
xor ecx, ecx
push ebx
push esi
push edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], ecx
mov byte [ebp - 0x29], 0
mov byte [ebp - 0x2a], 0
mov byte [ebp - 0x2b], 0
mov byte [ebp - 0x2c], 0
xor eax, eax
xor edx, edx
mov dword [ebp - 0x34], eax
xor eax, eax
mov esi, dword [ebp + 0x10]
lea ebx, [ebp - 0x12c]
add esi, dword [ebp + 0x18]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], edx
lea ecx, [esi - 1]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], 0
jne 0x615921
cmp dword [ebp + 0xc], 0
jne 0x615921
cmp dword [ebp + 0x10], 0
jne 0x615921
cmp dword [ebp + 0x14], 0xfffffc19
jne 0x615921
cmp dword [ebp + 0x18], 0xfffffc19
jne 0x615921
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call fcn.00604cbc
add esp, 0x1c
jmp 0x616686
test dword [ebp + 0x1c], 0xe20f5a6f
je 0x615934
mov eax, 0xfffffffd
jmp 0x616686
cmp dword [ebp - 0x4c], 0
je 0x61594c
cmp dword [ebp + 0x10], 0
je 0x61594c
cmp dword [ebp + 0x20], 0
jne 0x615956
cmp dword [ebp + 0x24], 0
jle 0x615956
mov eax, 0xfffffffe
jmp 0x616686
cmp dword [ebp + 0x24], 0
jge 0x615966
mov eax, 0xfffffff1
jmp 0x616686
cmp dword [ebp + 0x14], 0
jge 0x615976
mov eax, 0xffffffe0
jmp 0x616686
cmp dword [ebp + 0x18], 0
jl 0x615984
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp + 0x14]
jle 0x61598e
mov eax, 0xffffffe8
jmp 0x616686
mov edx, dword [ebp - 0x4c]
cmp dword [edx], 0x50435245
je 0x6159b8
mov ecx, dword [ebp - 0x4c]
cmp dword [ecx], 0x45524350
jne 0x6159ae
mov eax, 0xffffffe3
jmp 0x616686
mov eax, 0xfffffffc
jmp 0x616686
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 1
jne 0x6159cb
mov eax, 0xffffffe4
jmp 0x616686
mov edx, dword [ebp - 0x4c]
test byte [edx + 9], 8
setne cl
and ecx, 1
mov dword [ebx + 0x4c], ecx
mov dword [ebp - 0x20], ecx
test byte [ebp + 0x1f], 8
je 0x6159eb
mov eax, 2
jmp 0x6159fa
test byte [ebp + 0x1d], 0x80
je 0x6159f8
mov eax, 1
jmp 0x6159fa
xor eax, eax
mov dword [ebx + 0x88], eax
cmp dword [ebp - 0x20], 0
je 0x615a9a
test byte [ebp + 0x1d], 0x20
jne 0x615a9a
lea edx, [ebp - 0x50]
push edx
mov ecx, dword [ebp + 0x14]
push ecx
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.006176b8
add esp, 0xc
mov dword [ebp - 0x54], eax
cmp dword [ebp - 0x54], 0
je 0x615a6b
cmp dword [ebp + 0x24], 2
jl 0x615a48
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp - 0x50]
mov dword [eax], edx
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp - 0x54]
mov dword [ecx + 4], eax
cmp dword [ebp - 0x54], 5
jg 0x615a61
cmp dword [ebx + 0x88], 1
jle 0x615a61
mov eax, 0xffffffe7
jmp 0x616686
mov eax, 0xfffffff6
jmp 0x616686
cmp dword [ebp + 0x18], 0
jle 0x615a9a
mov edx, dword [ebp + 0x18]
cmp edx, dword [ebp + 0x14]
jge 0x615a9a
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x18]
xor eax, eax
mov al, byte [ecx + edi]
and eax, 0xc0
cmp eax, 0x80
jne 0x615a9a
mov eax, 0xfffffff5
jmp 0x616686
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x22]
add ecx, dword [ebp - 0x4c]
mov dword [ebx + 0x30], ecx
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x26]
mov dword [ebx + 0x20], eax
xor eax, eax
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x24]
mov dword [ebx + 0x24], ecx
mov dword [ebp - 0x48], eax
mov dword [ebx + 4], 0x989680
mov dword [ebx + 8], 0x989680
xor edx, edx
mov dword [ebx + 0xa8], edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x30], eax
cmp dword [ebp + 0xc], 0
je 0x615b3b
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx]
mov dword [ebp - 0x58], ecx
test byte [ebp - 0x58], 1
je 0x615afc
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 4]
mov dword [ebp - 0x48], edx
test byte [ebp - 0x58], 2
je 0x615b0b
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov dword [ebx + 4], eax
test byte [ebp - 0x58], 0x10
je 0x615b1a
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x14]
mov dword [ebx + 8], ecx
test byte [ebp - 0x58], 4
je 0x615b2c
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0xc]
mov dword [ebx + 0xa8], edx
test byte [ebp - 0x58], 8
je 0x615b3b
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xd], 0x20
je 0x615b58
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ebx + 4]
jae 0x615b58
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x10]
mov dword [ebx + 4], ecx
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xd], 0x40
je 0x615b75
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 0x14]
cmp ecx, dword [ebx + 8]
jae 0x615b75
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax + 0x14]
mov dword [ebx + 8], edx
cmp dword [ebp - 0x30], 0
jne 0x615b82
mov dword [ebp - 0x30], 0x6f0d1c
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 8]
or eax, dword [ebp + 0x1c]
test al, 0x10
setne dl
and edx, 1
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 1
setne al
and eax, 1
mov dword [ebp - 0x18], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xa], 4
setne cl
and ecx, 1
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x4c]
movzx edx, word [eax + 0x26]
mov eax, dword [ebp - 0x4c]
movzx ecx, word [eax + 0x24]
imul edx, ecx
mov eax, dword [ebp - 0x4c]
movzx ecx, word [eax + 0x22]
add ecx, dword [ebp - 0x4c]
add edx, ecx
mov dword [ebx + 0x70], edx
mov edx, dword [ebp + 0x10]
mov dword [ebx + 0x74], edx
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x94], ecx
mov eax, dword [ebx + 0x74]
add eax, dword [ebp + 0x14]
mov dword [ebx + 0x78], eax
mov edx, dword [ebx + 0x78]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 8], 0x20
setne al
and eax, 1
mov dword [ebx + 0x58], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xb], 0x20
setne cl
and ecx, 1
mov dword [ebx + 0x54], ecx
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xb], 2
setne dl
and edx, 1
xor ecx, ecx
mov dword [ebx + 0x50], edx
mov dword [ebx + 0x2c], ecx
test byte [ebp + 0x1c], 0x80
setne al
and eax, 1
mov dword [ebx + 0x44], eax
test byte [ebp + 0x1d], 1
setne dl
and edx, 1
mov dword [ebx + 0x48], edx
test byte [ebp + 0x1d], 4
setne cl
and ecx, 1
mov dword [ebx + 0x5c], ecx
test byte [ebp + 0x1f], 0x10
setne al
and eax, 1
xor edx, edx
mov dword [ebx + 0x60], eax
xor ecx, ecx
mov dword [ebx + 0x64], edx
mov dword [ebx + 0xb0], ecx
mov dword [ebx + 0xac], ecx
xor eax, eax
mov dword [ebx + 0xa4], eax
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xd], 0x10
setne cl
and ecx, 1
mov dword [ebx + 0x6c], ecx
mov eax, dword [ebp - 0x30]
mov dword [ebx + 0x38], eax
mov edx, dword [ebp - 0x30]
add edx, 0x100
mov dword [ebx + 0x3c], edx
mov ecx, dword [ebp - 0x30]
add ecx, 0x340
mov dword [ebx + 0x40], ecx
mov eax, dword [ebp + 0x1c]
and eax, 0x1800000
sub eax, 1
jb 0x615cc3
sub eax, 0x7fffff
je 0x615ce8
sub eax, 0x800000
je 0x615cf1
jmp 0x615cf8
mov edx, dword [ebp - 0x4c]
test dword [edx + 8], 0x1800000
je 0x615ce1
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xa], 0x80
setne al
and eax, 1
mov dword [ebx + 0x68], eax
jmp 0x615d02
xor edx, edx
mov dword [ebx + 0x68], edx
jmp 0x615d02
mov dword [ebx + 0x68], 1
jmp 0x615d02
xor ecx, ecx
mov dword [ebx + 0x68], ecx
jmp 0x615d02
mov eax, 0xffffffe9
jmp 0x616686
test byte [ebp + 0x1e], 0x70
jne 0x615d10
mov edx, dword [ebp - 0x4c]
mov ecx, dword [edx + 8]
jmp 0x615d13
mov ecx, dword [ebp + 0x1c]
and ecx, section..didata
cmp ecx, 0x300000
jg 0x615d3a
je 0x615d67
sub ecx, 1
jb 0x615d4c
sub ecx, 0xfffff
je 0x615d55
sub ecx, 0x100000
je 0x615d5e
jmp 0x615d82
sub ecx, 0x400000
je 0x615d70
sub ecx, 0x100000
je 0x615d79
jmp 0x615d82
mov dword [ebp - 0xc], 0xa
jmp 0x615d8c
mov dword [ebp - 0xc], 0xd
jmp 0x615d8c
mov dword [ebp - 0xc], 0xa
jmp 0x615d8c
mov dword [ebp - 0xc], 0xd0a
jmp 0x615d8c
mov dword [ebp - 0xc], 0xffffffff
jmp 0x615d8c
mov dword [ebp - 0xc], 0xfffffffe
jmp 0x615d8c
mov eax, 0xffffffe9
jmp 0x616686
cmp dword [ebp - 0xc], 0xfffffffe
jne 0x615d9b
mov dword [ebx + 0x18], 2
jmp 0x615de2
cmp dword [ebp - 0xc], 0
jge 0x615daa
mov dword [ebx + 0x18], 1
jmp 0x615de2
xor edx, edx
mov dword [ebx + 0x18], edx
cmp dword [ebp - 0xc], 0xff
jle 0x615dd5
mov dword [ebx + 0x1c], 2
mov ecx, dword [ebp - 0xc]
sar ecx, 8
and cl, 0xff
mov byte [ebx + 0x34], cl
mov al, byte [ebp - 0xc]
and al, 0xff
mov byte [ebx + 0x35], al
jmp 0x615de2
mov dword [ebx + 0x1c], 1
mov dl, byte [ebp - 0xc]
mov byte [ebx + 0x34], dl
cmp dword [ebx + 0x88], 0
je 0x615dfe
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 2
je 0x615dfe
mov eax, 0xfffffff3
jmp 0x616686
mov eax, dword [ebp + 0x24]
mov ecx, 3
cdq
idiv ecx
mov eax, dword [ebp + 0x24]
sub eax, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x20]
test eax, eax
jle 0x615e7c
mov eax, dword [ebp - 4]
mov ecx, 3
cdq
idiv ecx
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x20]
cmp eax, ecx
jg 0x615e7c
mov eax, dword [ebp - 0x4c]
movzx ecx, word [eax + 0x20]
lea eax, [ecx + ecx*2]
add eax, 3
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
shl edx, 2
push edx
call dword [0x6deb30]
pop ecx
mov dword [ebx + 0xc], eax
cmp dword [ebx + 0xc], 0
jne 0x615e73
mov eax, 0xfffffffa
jmp 0x616686
mov dword [ebp - 0x10], 1
jmp 0x615e82
mov edx, dword [ebp + 0x20]
mov dword [ebx + 0xc], edx
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x10], ecx
mov eax, dword [ebp - 4]
add eax, eax
mov ecx, 3
cdq
idiv ecx
mov dword [ebx + 0x14], eax
xor ecx, ecx
mov dword [ebx + 0x90], ecx
cmp dword [ebx + 0xc], 0
je 0x615efd
mov eax, dword [ebp - 4]
shl eax, 2
add eax, dword [ebx + 0xc]
mov dword [ebp - 0x5c], eax
mov edx, dword [ebp - 0x4c]
movzx ecx, word [edx + 0x1e]
shl ecx, 2
mov eax, dword [ebp - 0x5c]
sub eax, ecx
mov dword [ebp - 0x60], eax
mov edx, dword [ebx + 0xc]
add edx, 8
cmp edx, dword [ebp - 0x60]
jbe 0x615ee3
mov ecx, dword [ebx + 0xc]
add ecx, 8
mov dword [ebp - 0x60], ecx
jmp 0x615ee3
mov eax, dword [ebp - 0x5c]
mov dword [eax], 0xffffffff
sub dword [ebp - 0x5c], 4
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebp - 0x60]
jae 0x615eda
mov ecx, dword [ebx + 0xc]
or eax, 0xffffffff
mov dword [ecx + 4], eax
mov edx, dword [ebx + 0xc]
mov dword [edx], eax
cmp dword [ebp - 0x14], 0
jne 0x615f56
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xc], 0x10
je 0x615f38
mov dword [ebp - 0x24], 1
mov ecx, dword [ebp - 0x4c]
mov al, byte [ecx + 0x18]
mov byte [ebp - 0x2a], al
mov byte [ebp - 0x29], al
mov edx, dword [ebp - 0x4c]
test byte [edx + 0xc], 0x20
je 0x615f56
xor ecx, ecx
mov cl, byte [ebp - 0x29]
mov edi, dword [ebx + 0x3c]
mov al, byte [edi + ecx]
mov byte [ebp - 0x2a], al
jmp 0x615f56
cmp dword [ebp - 0x18], 0
jne 0x615f56
cmp dword [ebp - 0x48], 0
je 0x615f56
mov edx, dword [ebp - 0x48]
test byte [edx + 4], 1
je 0x615f56
mov ecx, dword [ebp - 0x48]
add ecx, 8
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xc], 0x40
je 0x615f89
mov dword [ebp - 0x28], 1
mov eax, dword [ebp - 0x4c]
mov dl, byte [eax + 0x1a]
mov byte [ebp - 0x2c], dl
mov byte [ebp - 0x2b], dl
mov eax, dword [ebp - 0x4c]
test byte [eax + 0xc], 0x80
je 0x615f89
xor ecx, ecx
mov cl, byte [ebp - 0x2b]
mov edi, dword [ebx + 0x3c]
mov al, byte [edi + ecx]
mov byte [ebp - 0x2c], al
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x64], edx
cmp dword [ebp - 0x1c], 0
je 0x616096
cmp dword [ebp - 0x20], 0
mov edi, esi
je 0x61602f
jmp 0x615fc0
inc edi
jmp 0x615fab
inc edi
cmp edi, dword [ebp - 0x38]
jae 0x615fc0
xor eax, eax
mov al, byte [edi]
and eax, 0xc0
cmp eax, 0x80
je 0x615faa
cmp edi, dword [ebx + 0x78]
jae 0x616093
cmp dword [ebx + 0x18], 0
je 0x615ffc
cmp edi, dword [ebx + 0x78]
jae 0x615ff1
mov edx, dword [ebp - 0x20]
lea ecx, [ebx + 0x1c]
push edx
push ecx
mov ecx, dword [ebx + 0x78]
push ecx
mov eax, dword [ebx + 0x18]
push eax
push edi
call fcn.006171f8
add esp, 0x14
test eax, eax
jne 0x615ff5
xor edx, edx
jmp 0x616024
mov edx, 1
jmp 0x616024
mov ecx, dword [ebx + 0x78]
sub ecx, dword [ebx + 0x1c]
cmp edi, ecx
ja 0x61601b
mov al, byte [edi]
cmp al, byte [ebx + 0x34]
jne 0x61601b
cmp dword [ebx + 0x1c], 1
je 0x61601f
mov dl, byte [edi + 1]
cmp dl, byte [ebx + 0x35]
je 0x61601f
xor edx, edx
jmp 0x616024
mov edx, 1
test edx, edx
je 0x615fa7
jmp 0x616093
inc edi
cmp edi, dword [ebx + 0x78]
jae 0x616093
cmp dword [ebx + 0x18], 0
je 0x616067
cmp edi, dword [ebx + 0x78]
jae 0x61605c
mov eax, dword [ebp - 0x20]
lea ecx, [ebx + 0x1c]
push eax
push ecx
mov ecx, dword [ebx + 0x78]
push ecx
mov eax, dword [ebx + 0x18]
push eax
push edi
call fcn.006171f8
add esp, 0x14
test eax, eax
jne 0x616060
xor edx, edx
jmp 0x61608f
mov edx, 1
jmp 0x61608f
mov ecx, dword [ebx + 0x78]
sub ecx, dword [ebx + 0x1c]
cmp edi, ecx
ja 0x616086
mov al, byte [edi]
cmp al, byte [ebx + 0x34]
jne 0x616086
cmp dword [ebx + 0x1c], 1
je 0x61608a
mov dl, byte [edi + 1]
cmp dl, byte [ebx + 0x35]
je 0x61608a
xor edx, edx
jmp 0x61608f
mov edx, 1
test edx, edx
je 0x61602e
mov dword [ebp - 0x38], edi
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax + 8]
or ecx, dword [ebp + 0x1c]
test ecx, 0x4000000
jne 0x61626a
cmp dword [ebp - 0x24], 0
je 0x6160f0
mov cl, byte [ebp - 0x29]
cmp cl, byte [ebp - 0x2a]
je 0x6160db
jmp 0x6160bc
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x61626a
mov al, byte [esi]
cmp al, byte [ebp - 0x29]
je 0x61626a
cmp al, byte [ebp - 0x2a]
jne 0x6160bb
jmp 0x61626a
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x61626a
mov al, byte [esi]
cmp al, byte [ebp - 0x29]
jne 0x6160da
jmp 0x61626a
cmp dword [ebp - 0x18], 0
je 0x61623b
mov edx, dword [ebx + 0x74]
add edx, dword [ebp + 0x18]
cmp esi, edx
jbe 0x61626a
cmp dword [ebp - 0x20], 0
je 0x6161a7
jmp 0x61612f
inc esi
jmp 0x616118
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x61612f
xor ecx, ecx
mov cl, byte [esi]
and ecx, 0xc0
cmp ecx, 0x80
je 0x616117
cmp esi, dword [ebp - 0x38]
jae 0x616214
cmp dword [ebx + 0x18], 0
je 0x61616a
mov edi, dword [ebx + 0x74]
cmp esi, edi
jbe 0x61615f
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebx + 0x1c]
push edx
push edi
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.006173e0
add esp, 0x14
test eax, eax
jne 0x616163
xor ecx, ecx
jmp 0x61619c
mov ecx, 1
jmp 0x61619c
mov eax, dword [ebx + 0x74]
add eax, dword [ebx + 0x1c]
cmp esi, eax
jb 0x616193
mov edx, esi
sub edx, dword [ebx + 0x1c]
mov cl, byte [edx]
cmp cl, byte [ebx + 0x34]
jne 0x616193
cmp dword [ebx + 0x1c], 1
je 0x616197
mov eax, esi
sub eax, dword [ebx + 0x1c]
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 0x35]
je 0x616197
xor ecx, ecx
jmp 0x61619c
mov ecx, 1
test ecx, ecx
je 0x616114
jmp 0x616214
inc esi
cmp esi, dword [ebp - 0x38]
jae 0x616214
cmp dword [ebx + 0x18], 0
je 0x6161de
mov edi, dword [ebx + 0x74]
cmp esi, edi
jbe 0x6161d3
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebx + 0x1c]
push edx
push edi
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.006173e0
add esp, 0x14
test eax, eax
jne 0x6161d7
xor ecx, ecx
jmp 0x616210
mov ecx, 1
jmp 0x616210
mov eax, dword [ebx + 0x74]
add eax, dword [ebx + 0x1c]
cmp esi, eax
jb 0x616207
mov edx, esi
sub edx, dword [ebx + 0x1c]
mov cl, byte [edx]
cmp cl, byte [ebx + 0x34]
jne 0x616207
cmp dword [ebx + 0x1c], 1
je 0x61620b
mov eax, esi
sub eax, dword [ebx + 0x1c]
mov dl, byte [eax + 1]
cmp dl, byte [ebx + 0x35]
je 0x61620b
xor ecx, ecx
jmp 0x616210
mov ecx, 1
test ecx, ecx
je 0x6161a6
xor eax, eax
mov al, byte [esi - 1]
cmp eax, 0xd
jne 0x61626a
cmp dword [ebx + 0x18], 1
je 0x61622a
cmp dword [ebx + 0x18], 2
jne 0x61626a
cmp esi, dword [ebp - 0x38]
jae 0x61626a
xor edx, edx
mov dl, byte [esi]
cmp edx, 0xa
jne 0x61626a
inc esi
jmp 0x61626a
cmp dword [ebp - 0x34], 0
je 0x61626a
cmp esi, dword [ebp - 0x38]
jae 0x61626a
xor eax, eax
mov al, byte [esi]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
shr eax, 3
mov ecx, dword [ebp - 0x34]
movzx eax, byte [ecx + eax]
and edx, eax
jne 0x61626a
inc esi
cmp esi, dword [ebp - 0x38]
jb 0x616246
mov edx, dword [ebp - 0x64]
mov dword [ebp - 0x38], edx
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ecx + 8]
or eax, dword [ebp + 0x1c]
test eax, 0x4000000
jne 0x61632e
cmp dword [ebx + 0x88], 0
jne 0x61632e
cmp dword [ebp - 0x48], 0
je 0x6162b4
mov edx, dword [ebp - 0x48]
test byte [edx + 4], 2
je 0x6162b4
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x38]
sub ecx, esi
cmp ecx, dword [eax + 0x28]
jae 0x6162b4
xor edi, edi
jmp 0x6164c7
cmp dword [ebp - 0x28], 0
je 0x61632e
mov eax, dword [ebp - 0x38]
sub eax, esi
cmp eax, 0x3e8
jge 0x61632e
cmp dword [ebp - 0x24], 0
je 0x6162d3
mov eax, 1
jmp 0x6162d5
xor eax, eax
add eax, esi
cmp eax, dword [ebp - 0x44]
jbe 0x61632e
mov dl, byte [ebp - 0x2b]
cmp dl, byte [ebp - 0x2c]
je 0x61630a
cmp eax, dword [ebp - 0x38]
jae 0x61631f
xor edx, edx
xor ecx, ecx
mov dl, byte [eax]
inc eax
mov cl, byte [ebp - 0x2b]
cmp edx, ecx
je 0x616300
xor ecx, ecx
mov cl, byte [ebp - 0x2c]
cmp edx, ecx
jne 0x616303
dec eax
jmp 0x61631f
cmp eax, dword [ebp - 0x38]
jb 0x6162e9
jmp 0x61631f
cmp eax, dword [ebp - 0x38]
jae 0x61631f
mov dl, byte [eax]
inc eax
cmp dl, byte [ebp - 0x2b]
jne 0x61631a
dec eax
jmp 0x61631f
cmp eax, dword [ebp - 0x38]
jb 0x61630f
cmp eax, dword [ebp - 0x38]
jb 0x61632b
xor edi, edi
jmp 0x6164c7
mov dword [ebp - 0x44], eax
mov dword [ebx + 0x7c], esi
mov dword [ebx + 0x84], esi
xor eax, eax
mov dword [ebx], eax
xor edx, edx
mov dword [ebx + 0x98], edx
xor ecx, ecx
mov dword [ebx + 0x8c], ecx
xor ecx, ecx
mov dword [ebx + 0x28], ecx
push 0
push 0
push ebx
push 2
push esi
mov eax, dword [ebx + 0x70]
push eax
push esi
call fcn.00604cbc
add esp, 0x1c
mov edi, eax
cmp dword [ebx + 0x64], 0
je 0x61637f
cmp dword [ebp - 0x3c], 0
jne 0x61637f
mov eax, dword [ebx + 0x84]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x40], esi
mov edx, edi
cmp edx, 0xfffffc1f
jg 0x61639e
je 0x6163b3
sub edx, 0xfffffc1c
je 0x616400
dec edx
je 0x6163cb
dec edx
je 0x6163be
jmp 0x6164c7
sub edx, 0xfffffc20
je 0x6163cb
sub edx, 0x3e0
je 0x6163cb
jmp 0x6164c7
mov dword [ebp - 0x68], esi
mov ecx, dword [ebx + 0x28]
mov dword [ebx + 0x2c], ecx
jmp 0x616407
cmp esi, dword [ebx + 0x7c]
jae 0x6163cb
mov ecx, dword [ebx + 0x7c]
mov dword [ebp - 0x68], ecx
jmp 0x616407
xor eax, eax
lea edx, [esi + 1]
mov dword [ebx + 0x2c], eax
mov dword [ebp - 0x68], edx
cmp dword [ebp - 0x20], 0
je 0x616407
jmp 0x6163e1
inc dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
cmp ecx, dword [ebp - 0x38]
jae 0x616407
mov eax, dword [ebp - 0x68]
xor edx, edx
mov dl, byte [eax]
and edx, 0xc0
cmp edx, 0x80
je 0x6163de
jmp 0x616407
xor edi, edi
jmp 0x6164c7
xor edi, edi
cmp dword [ebp - 0x1c], 0
je 0x61646e
cmp dword [ebx + 0x18], 0
je 0x616442
cmp esi, dword [ebx + 0x78]
jae 0x616437
mov eax, dword [ebp - 0x20]
lea edx, [ebx + 0x1c]
push eax
push edx
mov ecx, dword [ebx + 0x78]
push ecx
mov ecx, dword [ebx + 0x18]
push ecx
push esi
call fcn.006171f8
add esp, 0x14
test eax, eax
jne 0x61643b
xor eax, eax
jmp 0x61646a
mov eax, 1
jmp 0x61646a
mov edx, dword [ebx + 0x78]
sub edx, dword [ebx + 0x1c]
cmp esi, edx
ja 0x616461
mov cl, byte [esi]
cmp cl, byte [ebx + 0x34]
jne 0x616461
cmp dword [ebx + 0x1c], 1
je 0x616465
mov al, byte [esi + 1]
cmp al, byte [ebx + 0x35]
je 0x616465
xor eax, eax
jmp 0x61646a
mov eax, 1
test eax, eax
jne 0x6164c7
cmp dword [ebp - 0x14], 0
mov esi, dword [ebp - 0x68]
jne 0x6164c7
cmp esi, dword [ebp - 0x38]
ja 0x6164c7
mov eax, dword [ebp + 0x10]
add eax, dword [ebp + 0x18]
cmp esi, eax
jbe 0x6164ba
xor edx, edx
mov dl, byte [esi - 1]
cmp edx, 0xd
jne 0x6164ba
cmp esi, dword [ebp - 0x38]
jae 0x6164ba
xor ecx, ecx
mov cl, byte [esi]
cmp ecx, 0xa
jne 0x6164ba
mov ecx, dword [ebp - 0x4c]
test byte [ecx + 0xd], 8
jne 0x6164ba
cmp dword [ebx + 0x18], 1
je 0x6164b9
cmp dword [ebx + 0x18], 2
je 0x6164b9
cmp dword [ebx + 0x1c], 2
jne 0x6164ba
inc esi
xor eax, eax
mov dword [ebx + 0xac], eax
jmp 0x615f89
cmp edi, 1
je 0x6164d8
cmp edi, 0xfffffc19
jne 0x616603
cmp dword [ebp - 0x10], 0
je 0x616524
cmp dword [ebp - 8], 4
jl 0x616504
mov edx, dword [ebp - 8]
add edx, 0xfffffffe
shl edx, 2
push edx
mov ecx, dword [ebx + 0xc]
add ecx, 8
push ecx
mov eax, dword [ebp + 0x20]
add eax, 8
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov edx, dword [ebx + 0x8c]
cmp edx, dword [ebp - 8]
jle 0x616519
or dword [ebx + 0x90], 0x10000
mov ecx, dword [ebx + 0xc]
push ecx
call dword [0x6deb34]
pop ecx
test byte [ebx + 0x92], 1
je 0x61653c
mov eax, dword [ebx + 0x8c]
cmp eax, dword [ebp - 8]
jl 0x61653c
xor edi, edi
jmp 0x616549
mov edi, dword [ebx + 0x8c]
sar edi, 1
jns 0x616549
adc edi, 0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebx + 0x8c]
sar ecx, 1
movzx edx, word [eax + 0x1e]
jns 0x61655d
adc ecx, 0
cmp edx, ecx
jl 0x6165bc
cmp dword [ebp + 0x20], 0
je 0x6165bc
mov ecx, dword [ebp - 0x4c]
movzx eax, word [ecx + 0x1e]
add eax, eax
add eax, 2
mov dword [ebp - 0x74], eax
mov edx, dword [ebp - 0x74]
cmp edx, dword [ebp + 0x24]
jle 0x616584
mov ecx, dword [ebp + 0x24]
mov dword [ebp - 0x74], ecx
mov eax, dword [ebx + 0x8c]
shl eax, 2
add eax, dword [ebp + 0x20]
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x74]
shl edx, 2
add edx, dword [ebp + 0x20]
mov dword [ebp - 0x70], edx
mov ecx, dword [ebp - 0x6c]
cmp ecx, dword [ebp - 0x70]
jae 0x6165bc
mov eax, dword [ebp - 0x6c]
mov dword [eax], 0xffffffff
add dword [ebp - 0x6c], 4
mov edx, dword [ebp - 0x6c]
cmp edx, dword [ebp - 0x70]
jb 0x6165a7
cmp dword [ebp + 0x24], 2
jge 0x6165c6
xor edi, edi
jmp 0x6165e0
mov eax, dword [ebx + 0x7c]
mov edx, dword [ebp + 0x20]
sub eax, dword [ebx + 0x74]
mov dword [edx], eax
mov ecx, dword [ebx + 0x80]
mov esi, dword [ebp + 0x20]
sub ecx, dword [ebx + 0x74]
mov dword [esi + 4], ecx
cmp dword [ebp + 0xc], 0
je 0x6165fc
mov eax, dword [ebp + 0xc]
test byte [eax], 0x20
je 0x6165fc
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
mov ebx, dword [ebx + 0xac]
mov dword [ecx], ebx
mov eax, edi
jmp 0x616686
cmp dword [ebp - 0x10], 0
je 0x616614
mov edx, dword [ebx + 0xc]
push edx
call dword [0x6deb34]
pop ecx
test edi, edi
je 0x616621
cmp edi, 0xfffffff4
je 0x616621
mov eax, edi
jmp 0x616686
cmp dword [ebp - 0x40], 0
je 0x616665
xor edx, edx
mov dword [ebx + 0xac], edx
cmp dword [ebp + 0x24], 1
jle 0x61665e
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp + 0x20]
sub ecx, dword [ebp + 0x10]
mov dword [eax], ecx
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp + 0x20]
sub edx, dword [ebp + 0x10]
mov dword [ecx + 4], edx
cmp dword [ebp + 0x24], 2
jle 0x61665e
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp + 0x20]
sub ecx, dword [ebp + 0x10]
mov dword [eax + 8], ecx
mov edi, 0xfffffff4
jmp 0x616668
or edi, 0xffffffff
cmp dword [ebp + 0xc], 0
je 0x616684
mov eax, dword [ebp + 0xc]
test byte [eax], 0x20
je 0x616684
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x18]
mov ebx, dword [ebx + 0xb0]
mov dword [ecx], ebx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret