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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x7c]
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
mov eax, dword [eax]
test eax, eax
jle 0x61af15c3
add esp, 0x5c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x78]
mov dword [esp + 0x20], 0
mov eax, dword [eax + 8]
test al, 0xc
mov dword [esp + 0x28], eax
je 0x61af15ec
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x18], eax
add eax, 1
mov dword [esp + 0x20], eax
lea eax, [ebp + 0x10]
mov byte [esp + 0x18], 0
mov dword [esp + 0x1c], eax
mov edx, dword [ebp + 0x168]
mov eax, dword [ebp + 0x10]
cmp edx, eax
jge 0x61af1bc0
lea eax, [edx + 1]
mov dword [ebp + 0x168], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + edx*8 + 4]
cmp edx, 0x2000000
mov edi, edx
jbe 0x61af1c42
cmp edx, dword [esp + 0x20]
jae 0x61af1c42
mov esi, dword [esp + 0x7c]
mov dword [esp + 0x74], ebx
mov ebx, dword [ebp + 0x168]
mov ecx, dword [ebp + 0x18]
lea eax, [ebx - 1]
mov dword [ecx + eax*8], 0
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af1682
lea eax, [ebx + 1]
mov edx, dword [ecx + ebx*8 + 4]
mov dword [ebp + 0x168], eax
test edx, edx
mov edi, edx
jne 0x61af16ff
mov ebx, dword [ebp + 0x168]
mov ecx, dword [ebp + 0x18]
mov dword [ecx + ebx*8 - 8], 0
mov dword [ecx + ebx*8 - 4], 0
mov eax, dword [ebp + 0x10]
cmp eax, ebx
jg 0x61af1652
cmp eax, 0x27
jg 0x61af1720
add eax, 1
lea edi, [esp + 0x4c]
mov ecx, ebp
mov dword [ebp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp + 4], esi
mov dword [esp], edi
call dword [eax + 0x20]
movzx ecx, al
sub esp, 8
cmp ecx, 0xbf
jbe 0x61af19b0
cmp ecx, 0xc0
je 0x61af1940
mov edx, dword [ebp + 8]
cmp ecx, 0xc1
je 0x61af1a93
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov ecx, ebp
mov dword [esp + 0xc], esi
mov dword [esp], edx
mov dword [esp + 4], eax
call method.icu_53::CollationIterator.nextCEFromCE32_icu_53::CollationData_const__int__unsigned_int__UErrorCode_
sub esp, 0x10
test edx, edx
mov edi, edx
je 0x61af1669
cmp edx, 0x2000000
jbe 0x61af1711
cmp dword [esp + 0x20], edx
ja 0x61af1639
mov ebx, dword [esp + 0x74]
jmp 0x61af174c
mov ecx, dword [esp + 0x1c]
mov dword [esp + 4], esi
mov dword [esp], 1
call method.icu_53::CollationIterator::CEBuffer.ensureAppendCapacity_int__UErrorCode_
sub esp, 8
test al, al
je 0x61af1743
mov eax, dword [ebp + 0x10]
jmp 0x61af1692
mov ebx, dword [esp + 0x74]
mov edi, 1
mov byte [esp + 0x18], 1
lea eax, [ebx + 0x10]
mov dword [esp + 0x30], eax
mov edx, dword [ebx + 0x168]
mov eax, dword [ebx + 0x10]
cmp edx, eax
jge 0x61af1ae8
lea eax, [edx + 1]
mov dword [ebx + 0x168], eax
mov eax, dword [ebx + 0x18]
mov edx, dword [eax + edx*8 + 4]
cmp edx, 0x2000000
mov eax, edx
jbe 0x61af1b69
cmp edx, dword [esp + 0x20]
jae 0x61af1b69
lea eax, [ebx + 0x10]
mov dword [esp + 0x70], ebp
mov ebp, edi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
mov esi, dword [ebx + 0x168]
mov ecx, dword [ebx + 0x18]
lea eax, [esi - 1]
mov dword [ecx + eax*8], 0
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af17f0
lea eax, [esi + 1]
mov edx, dword [ecx + esi*8 + 4]
mov dword [ebx + 0x168], eax
test edx, edx
mov eax, edx
jne 0x61af186c
mov esi, dword [ebx + 0x168]
mov ecx, dword [ebx + 0x18]
mov dword [ecx + esi*8 - 8], 0
mov dword [ecx + esi*8 - 4], 0
mov eax, dword [ebx + 0x10]
cmp eax, esi
jg 0x61af17c0
cmp eax, 0x27
jg 0x61af1890
add eax, 1
lea esi, [esp + 0x4c]
mov ecx, ebx
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [eax + 0x20]
movzx ecx, al
sub esp, 8
cmp ecx, 0xbf
jbe 0x61af1a60
cmp ecx, 0xc0
je 0x61af19e3
mov edx, dword [ebx + 8]
cmp ecx, 0xc1
je 0x61af1ac0
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov ecx, ebx
mov dword [esp + 0xc], edi
mov dword [esp], edx
mov dword [esp + 4], eax
call method.icu_53::CollationIterator.nextCEFromCE32_icu_53::CollationData_const__int__unsigned_int__UErrorCode_
sub esp, 0x10
test edx, edx
mov eax, edx
je 0x61af17d7
cmp edx, 0x2000000
jbe 0x61af187e
cmp dword [esp + 0x20], edx
ja 0x61af17a2
mov edi, ebp
mov ebp, dword [esp + 0x70]
jmp 0x61af18be
mov ecx, dword [esp + 0x18]
mov dword [esp + 4], edi
mov dword [esp], 1
call method.icu_53::CollationIterator::CEBuffer.ensureAppendCapacity_int__UErrorCode_
sub esp, 8
test al, al
je 0x61af18b3
mov eax, dword [ebx + 0x10]
jmp 0x61af1800
mov edi, ebp
mov ebp, dword [esp + 0x70]
mov eax, 1
mov byte [esp + 0x18], 1
cmp edi, eax
jne 0x61af1b79
cmp edi, 1
jne 0x61af15f8
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
test eax, eax
jg 0x61af15b9
mov edi, dword [esp + 0x28]
mov eax, edi
sar eax, 0xc
test eax, eax
mov dword [esp + 0x2c], eax
jle 0x61af2251
mov eax, edi
test ah, 8
jne 0x61af20d0
mov edi, dword [ebx + 0x18]
mov edx, dword [ebp + 0x18]
xor esi, esi
jmp 0x61af1913
add edx, 8
mov eax, dword [edx]
shr eax, 0x10
test eax, eax
je 0x61af1910
add esi, 1
movzx ecx, word [edi + esi*8 - 6]
test ecx, ecx
je 0x61af191c
cmp eax, ecx
jne 0x61af220a
cmp eax, 0x100
jne 0x61af1910
jmp 0x61af2251
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x61af1c50
mov edx, dword [ebp + 8]
cmp eax, 0xd7ff
mov edx, dword [edx + 0x10]
mov edi, dword [edx]
mov ecx, dword [edi + 8]
jle 0x61af1cbf
cmp eax, 0xffff
jg 0x61af1cd8
mov edi, dword [edi]
cmp eax, 0xdc00
mov ebx, 0
mov dword [esp + 0x18], edi
mov edi, 0x140
cmovl ebx, edi
mov edi, eax
and eax, 0x1f
sar edi, 5
add ebx, edi
mov edi, dword [esp + 0x18]
movzx ebx, word [edi + ebx*2]
lea ebx, [eax + ebx*4]
shl ebx, 2
mov eax, dword [ecx + ebx]
movzx ecx, al
cmp ecx, 0xbf
ja 0x61af16cc
nop
mov ebx, eax
xor ax, ax
shl ecx, 8
mov edx, eax
mov eax, dword [ebp + 0x168]
and ebx, 0xff00
shl ebx, 0x10
or ecx, ebx
lea ebx, [eax + 1]
mov dword [ebp + 0x168], ebx
mov ebx, dword [ebp + 0x18]
mov dword [ebx + eax*8], ecx
mov dword [ebx + eax*8 + 4], edx
jmp 0x61af165f
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x61af1c7a
mov edx, dword [ebx + 8]
cmp eax, 0xd7ff
mov edx, dword [edx + 0x10]
mov esi, dword [edx]
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], ecx
jle 0x61af1ca6
cmp eax, 0xffff
jg 0x61af1cfc
mov esi, dword [esi]
cmp eax, 0xdc00
mov ecx, 0
mov dword [esp + 0x2c], esi
mov esi, 0x140
cmovl ecx, esi
mov esi, eax
and eax, 0x1f
sar esi, 5
add ecx, esi
mov esi, dword [esp + 0x2c]
movzx ecx, word [esi + ecx*2]
lea ecx, [eax + ecx*4]
shl ecx, 2
mov eax, dword [esp + 0x24]
mov eax, dword [eax + ecx]
movzx ecx, al
cmp ecx, 0xbf
ja 0x61af1839
lea esi, [esi]
mov esi, eax
xor ax, ax
shl ecx, 8
mov edx, eax
mov eax, dword [ebx + 0x168]
and esi, 0xff00
shl esi, 0x10
or ecx, esi
lea esi, [eax + 1]
mov dword [ebx + 0x168], esi
mov esi, dword [ebx + 0x18]
mov dword [esi + eax*8], ecx
mov dword [esi + eax*8 + 4], edx
jmp 0x61af17cd
lea edx, [eax - 0xc1]
mov eax, dword [ebp + 0x168]
lea ecx, [eax + 1]
mov dword [ebp + 0x168], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx + eax*8], 0x5000500
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af165f
lea edx, [eax - 0xc1]
mov eax, dword [ebx + 0x168]
lea ecx, [eax + 1]
mov dword [ebx + 0x168], ecx
mov ecx, dword [ebx + 0x18]
mov dword [ecx + eax*8], 0x5000500
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af17cd
cmp eax, 0x27
jg 0x61af1d72
add eax, 1
mov esi, dword [esp + 0x7c]
lea edx, [esp + 0x4c]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx]
mov ecx, ebx
mov dword [esp], edx
mov dword [esp + 4], esi
call dword [eax + 0x20]
movzx esi, al
sub esp, 8
cmp esi, 0xbf
jbe 0x61af1f41
cmp esi, 0xc0
je 0x61af1eca
mov ecx, dword [ebx + 8]
cmp esi, 0xc1
je 0x61af1f9e
mov esi, dword [esp + 0x7c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], ecx
mov ecx, ebx
mov dword [esp + 0xc], esi
mov dword [esp + 4], eax
call method.icu_53::CollationIterator.nextCEFromCE32_icu_53::CollationData_const__int__unsigned_int__UErrorCode_
sub esp, 0x10
cmp edx, 0x2000000
mov eax, edx
ja 0x61af1787
test edx, edx
je 0x61af1758
cmp edi, eax
je 0x61af18cb
mov esi, edi
mov edi, dword [esp + 0x78]
mov edx, dword [edi + 0x10]
test edx, edx
je 0x61af1bb1
mov ecx, esi
and esi, 0xffffff
shr ecx, 0x18
mov ebx, esi
movzx ecx, byte [edx + ecx]
shl ecx, 0x18
mov esi, ecx
or esi, ebx
mov ecx, eax
and eax, 0xffffff
shr ecx, 0x18
movzx edx, byte [edx + ecx]
shl edx, 0x18
or eax, edx
cmp esi, eax
sbb eax, eax
add esp, 0x5c
pop ebx
or eax, 1
pop esi
pop edi
pop ebp
ret
cmp eax, 0x27
jg 0x61af1d20
mov edi, dword [esp + 0x7c]
add eax, 1
mov ecx, ebp
mov dword [ebp + 0x10], eax
mov eax, dword [ebp]
mov dword [esp + 4], edi
lea edi, [esp + 0x4c]
mov dword [esp], edi
call dword [eax + 0x20]
movzx edx, al
sub esp, 8
cmp edx, 0xbf
jbe 0x61af1e95
cmp edx, 0xc0
je 0x61af1e26
mov esi, dword [ebp + 8]
cmp edx, 0xc1
je 0x61af1f76
mov edi, dword [esp + 0x7c]
mov dword [esp + 8], eax
mov ecx, ebp
mov eax, dword [esp + 0x4c]
mov dword [esp], esi
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
call method.icu_53::CollationIterator.nextCEFromCE32_icu_53::CollationData_const__int__unsigned_int__UErrorCode_
sub esp, 0x10
cmp edx, 0x2000000
mov edi, edx
ja 0x61af1627
test edx, edx
je 0x61af15f8
jmp 0x61af1751
mov eax, dword [ebp + 0x168]
mov ebx, dword [esp + 0x74]
lea edx, [eax + 1]
mov dword [ebp + 0x168], edx
mov edx, dword [ebp + 0x18]
mov dword [edx + eax*8], 0x1000100
mov dword [edx + eax*8 + 4], 1
jmp 0x61af1747
mov eax, dword [ebx + 0x168]
mov edi, ebp
mov ebp, dword [esp + 0x70]
lea edx, [eax + 1]
mov dword [ebx + 0x168], edx
mov edx, dword [ebx + 0x18]
mov dword [edx + eax*8], 0x1000100
mov dword [edx + eax*8 + 4], 1
jmp 0x61af18b9
mov esi, dword [esi]
mov ecx, eax
and eax, 0x1f
sar ecx, 5
movzx ecx, word [esi + ecx*2]
lea ecx, [eax + ecx*4]
shl ecx, 2
jmp 0x61af1a44
mov edi, dword [edi]
mov ebx, eax
and eax, 0x1f
sar ebx, 5
movzx ebx, word [edi + ebx*2]
lea ebx, [eax + ebx*4]
shl ebx, 2
jmp 0x61af199d
cmp eax, 0x10ffff
mov ebx, 0x200
ja 0x61af199d
cmp eax, dword [edi + 0x20]
jl 0x61af1dc4
mov ebx, dword [edi + 0x24]
shl ebx, 2
jmp 0x61af199d
cmp eax, 0x10ffff
mov ecx, 0x200
ja 0x61af1a44
cmp eax, dword [esi + 0x20]
jl 0x61af1df5
mov ecx, dword [esi + 0x24]
shl ecx, 2
jmp 0x61af1a44
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x1c]
mov dword [esp], 1
mov dword [esp + 4], eax
call method.icu_53::CollationIterator::CEBuffer.ensureAppendCapacity_int__UErrorCode_
sub esp, 8
test al, al
je 0x61af1d68
mov eax, dword [ebp + 0x10]
jmp 0x61af1bc9
mov eax, dword [ebp + 0x168]
lea edx, [eax + 1]
mov dword [ebp + 0x168], edx
mov edx, dword [ebp + 0x18]
mov dword [edx + eax*8], 0x1000100
mov dword [edx + eax*8 + 4], 1
mov edi, 1
jmp 0x61af1751
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x30]
mov dword [esp], 1
mov dword [esp + 4], eax
call method.icu_53::CollationIterator::CEBuffer.ensureAppendCapacity_int__UErrorCode_
sub esp, 8
test al, al
je 0x61af1dba
mov eax, dword [ebx + 0x10]
jmp 0x61af1af1
mov eax, dword [ebx + 0x168]
lea edx, [eax + 1]
mov dword [ebx + 0x168], edx
mov edx, dword [ebx + 0x18]
mov dword [edx + eax*8], 0x1000100
mov dword [edx + eax*8 + 4], 1
mov eax, 1
jmp 0x61af18c3
mov edi, dword [edi]
mov ebx, eax
sar ebx, 0xb
movzx ebx, word [edi + ebx*2 + 0x1040]
mov dword [esp + 0x18], ebx
mov ebx, eax
and eax, 0x1f
sar ebx, 5
and ebx, 0x3f
add ebx, dword [esp + 0x18]
movzx ebx, word [edi + ebx*2]
lea ebx, [eax + ebx*4]
shl ebx, 2
jmp 0x61af199d
mov esi, dword [esi]
mov ecx, eax
sar ecx, 0xb
movzx ecx, word [esi + ecx*2 + 0x1040]
mov dword [esp + 0x2c], ecx
mov ecx, eax
and eax, 0x1f
sar ecx, 5
and ecx, 0x3f
add ecx, dword [esp + 0x2c]
movzx ecx, word [esi + ecx*2]
lea ecx, [eax + ecx*4]
shl ecx, 2
jmp 0x61af1a44
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x61af1d47
mov edx, dword [ebp + 8]
cmp eax, 0xd7ff
mov esi, dword [edx + 0x10]
mov ecx, dword [esi]
mov edi, dword [ecx + 8]
jle 0x61af20a5
cmp eax, 0xffff
jg 0x61af1fe6
mov edx, dword [ecx]
cmp eax, 0xdc00
mov ecx, 0x140
mov dword [esp + 0x24], edx
mov edx, 0
cmovl edx, ecx
mov ecx, eax
and eax, 0x1f
sar ecx, 5
add edx, ecx
mov ecx, dword [esp + 0x24]
movzx edx, word [ecx + edx*2]
lea edx, [eax + edx*4]
shl edx, 2
mov eax, dword [edi + edx]
movzx edx, al
cmp edx, 0xbf
ja 0x61af1c07
mov ecx, eax
shl edx, 8
xor ax, ax
and ecx, 0xff00
shl ecx, 0x10
mov esi, ecx
or esi, edx
mov edx, eax
mov eax, dword [ebp + 0x168]
lea ecx, [eax + 1]
mov dword [ebp + 0x168], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx + eax*8], esi
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af1619
mov eax, dword [esp + 0x4c]
test eax, eax
js 0x61af1d99
mov edx, dword [ebx + 8]
cmp eax, 0xd7ff
mov ecx, dword [edx + 0x10]
mov esi, dword [ecx]
mov edx, dword [esi + 8]
mov dword [esp + 0x24], edx
jle 0x61af208c
cmp eax, 0xffff
jg 0x61af1fc6
mov esi, dword [esi]
cmp eax, 0xdc00
mov edx, 0
mov dword [esp + 0x2c], esi
mov esi, 0x140
cmovl edx, esi
mov esi, eax
and eax, 0x1f
sar esi, 5
add edx, esi
mov esi, dword [esp + 0x2c]
movzx edx, word [esi + edx*2]
lea edx, [eax + edx*4]
shl edx, 2
mov eax, dword [esp + 0x24]
mov eax, dword [eax + edx]
movzx esi, al
cmp esi, 0xbf
ja 0x61af1b2e
mov edx, eax
shl esi, 8
xor ax, ax
and edx, 0xff00
mov ecx, esi
shl edx, 0x10
or ecx, edx
mov edx, eax
mov eax, dword [ebx + 0x168]
lea esi, [eax + 1]
mov dword [ebx + 0x168], esi
mov esi, dword [ebx + 0x18]
mov dword [esi + eax*8], ecx
mov dword [esi + eax*8 + 4], edx
jmp 0x61af1779
lea edx, [eax - 0xc1]
mov eax, dword [ebp + 0x168]
lea ecx, [eax + 1]
mov dword [ebp + 0x168], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ecx + eax*8], 0x5000500
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af1619
lea edx, [eax - 0xc1]
mov eax, dword [ebx + 0x168]
lea ecx, [eax + 1]
mov dword [ebx + 0x168], ecx
mov ecx, dword [ebx + 0x18]
mov dword [ecx + eax*8], 0x5000500
mov dword [ecx + eax*8 + 4], edx
jmp 0x61af1779
cmp eax, 0x10ffff
mov edx, 0x200
ja 0x61af1f2b
cmp eax, dword [esi + 0x20]
jl 0x61af2018
mov edx, dword [esi + 0x24]
shl edx, 2
jmp 0x61af1f2b
cmp eax, 0x10ffff
mov edx, 0x200
ja 0x61af1e83
cmp eax, dword [ecx + 0x20]
jl 0x61af2049
mov edx, dword [ecx + 0x24]
shl edx, 2
mov eax, dword [edi + edx]
movzx edx, al
cmp edx, 0xbf
ja 0x61af1c07
jmp 0x61af1e95
mov esi, dword [esi]
mov edx, eax
sar edx, 0xb
movzx edx, word [esi + edx*2 + 0x1040]
mov dword [esp + 0x2c], edx
mov edx, eax
and eax, 0x1f
sar edx, 5
and edx, 0x3f
add edx, dword [esp + 0x2c]
movzx edx, word [esi + edx*2]
lea edx, [eax + edx*4]
shl edx, 2
jmp 0x61af1f2b
mov ecx, dword [ecx]
mov edx, eax
sar edx, 0xb
movzx edx, word [ecx + edx*2 + 0x1040]
mov dword [esp + 0x24], edx
mov edx, eax
and eax, 0x1f
sar edx, 5
and edx, 0x3f
add edx, dword [esp + 0x24]
movzx edx, word [ecx + edx*2]
lea edx, [eax + edx*4]
shl edx, 2
mov eax, dword [edi + edx]
movzx edx, al
cmp edx, 0xbf
ja 0x61af1c07
jmp 0x61af1e95
mov esi, dword [esi]
mov edx, eax
and eax, 0x1f
sar edx, 5
movzx edx, word [esi + edx*2]
lea edx, [eax + edx*4]
shl edx, 2
jmp 0x61af1f2b
mov ecx, dword [ecx]
mov edx, eax
and eax, 0x1f
sar edx, 5
movzx edx, word [ecx + edx*2]
lea edx, [eax + edx*4]
shl edx, 2
mov eax, dword [edi + edx]
movzx edx, al
cmp edx, 0xbf
ja 0x61af1c07
jmp 0x61af1e95
mov eax, dword [ebx + 0x18]
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], ebx
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x34], eax
mov ebx, dword [eax + edi*8]
mov eax, dword [eax + edi*8 + 4]
lea edx, [ebx - 1]
mov dword [esp + 0x3c], eax
mov eax, edi
cmp edx, 0x20001ff
jbe 0x61af211f
mov edx, dword [esp + 0x34]
add eax, 1
mov esi, dword [edx + eax*8 + 4]
mov ebx, dword [edx + eax*8]
mov dword [esp + 0x3c], esi
lea esi, [ebx - 1]
cmp esi, 0x20001ff
ja 0x61af2106
mov esi, dword [esp + 0x30]
mov edx, ecx
mov esi, dword [esi + ecx*8]
mov dword [esp + 0x1c], esi
sub esi, 1
cmp esi, 0x20001ff
jbe 0x61af214d
mov ebp, dword [esp + 0x30]
add edx, 1
mov esi, dword [ebp + edx*8]
sub esi, 1
cmp esi, 0x20001ff
ja 0x61af213b
mov esi, edx
mov ebp, eax
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x1c]
cmp edi, ebp
jge 0x61af2217
mov dword [esp + 0x24], eax
jmp 0x61af2174
test eax, eax
jne 0x61af2188
mov eax, dword [esp + 0x34]
sub ebp, 1
cmp edi, ebp
movzx eax, word [eax + ebp*8 + 2]
mov dword [esp + 0x20], eax
jl 0x61af2170
cmp ecx, esi
mov dword [esp + 0x1c], edi
mov eax, dword [esp + 0x24]
jge 0x61af2397
mov dword [esp + 0x38], eax
jmp 0x61af21a4
test eax, eax
jne 0x61af21b8
mov eax, dword [esp + 0x30]
sub esi, 1
cmp ecx, esi
movzx eax, word [eax + esi*8 + 2]
mov dword [esp + 0x24], eax
jl 0x61af21a0
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x24]
cmp dword [esp + 0x20], edi
jne 0x61af2230
mov edi, dword [esp + 0x20]
test edi, edi
jne 0x61af2155
mov ecx, dword [esp + 0x3c]
xor ebx, 0x1000100
xor ecx, 1
or ecx, ebx
je 0x61af2249
lea edi, [eax + 1]
lea ecx, [edx + 1]
mov eax, dword [esp + 0x34]
jmp 0x61af20ea
mov ecx, dword [esp + 0x28]
and ecx, 0x700
cmp ecx, 0x300
je 0x61af2456
cmp eax, edx
sbb eax, eax
add esp, 0x5c
or eax, 1
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ecx, esi
jge 0x61af21d2
mov dword [esp + 0x20], 0
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
jmp 0x61af21a4
mov edi, dword [esp + 0x20]
xor eax, eax
cmp dword [esp + 0x24], edi
setle al
add esp, 0x5c
pop ebx
lea eax, [eax + eax - 1]
pop esi
pop edi
pop ebp
ret
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
test dword [esp + 0x28], 0x400
je 0x61af22c2
mov eax, dword [ebp + 0x18]
mov edi, dword [ebx + 0x18]
xor esi, esi
xor ecx, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x61af233a
mov eax, dword [esp + 0x20]
add ecx, 1
cmp dword [eax + ecx*8 - 4], 0
mov edx, dword [eax + ecx*8 - 8]
je 0x61af2279
test edx, edx
je 0x61af2279
mov eax, edx
and eax, 0xc000
mov dword [esp + 0x1c], eax
add esi, 1
cmp dword [edi + esi*8 - 4], 0
mov eax, dword [edi + esi*8 - 8]
je 0x61af2296
test eax, eax
je 0x61af2296
and eax, 0xc000
cmp dword [esp + 0x1c], eax
jne 0x61af2375
shr edx, 0x10
cmp edx, 0x100
jne 0x61af2269
cmp dword [esp + 0x2c], 1
jle 0x61af15b9
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0x18]
mov edx, 0xff3f
mov edi, dword [ebx + 0x18]
and eax, 0x600
mov ebp, ecx
cmp eax, 0x200
mov eax, 0x3f3f
cmove eax, edx
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
mov dword [esp + 0x20], eax
or ebx, eax
and eax, dword [esp + 0x1c]
je 0x61af2335
mov dword [esp + 0x30], eax
add esi, 1
mov eax, dword [esp + 0x1c]
mov edx, dword [edi + esi*8 - 8]
or ebx, edx
and eax, edx
mov dword [esp + 0x24], edx
mov edx, eax
je 0x61af230b
mov eax, dword [esp + 0x30]
cmp eax, edx
jne 0x61af21f2
cmp eax, 0x100
je 0x61af23a4
add ebp, 8
jmp 0x61af22f8
mov eax, dword [esp + 0x20]
add ecx, 1
mov edx, dword [eax + ecx*8 - 8]
cmp edx, 0xffff
jbe 0x61af233a
mov eax, edx
and eax, 0xc000
mov dword [esp + 0x1c], eax
add esi, 1
mov eax, dword [edi + esi*8 - 8]
cmp eax, 0xffff
jbe 0x61af2358
and eax, 0xc000
cmp dword [esp + 0x1c], eax
je 0x61af22b7
cmp dword [esp + 0x1c], eax
sbb eax, eax
test dword [esp + 0x28], 0x100
je 0x61af220c
add esp, 0x5c
and eax, 2
pop ebx
sub eax, 1
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x24], 0
jmp 0x61af21c0
cmp dword [esp + 0x2c], 2
je 0x61af15b9
cmp byte [esp + 0x18], 0
jne 0x61af23c2
and ebx, 0xc0
je 0x61af15b9
xor edx, edx
movzx esi, word [ecx]
mov eax, dword [ecx + 4]
test esi, esi
jne 0x61af23d9
test eax, eax
mov esi, eax
jne 0x61af23e9
add ecx, 8
jmp 0x61af23c4
mov eax, esi
or eax, 0xffffff3f
cmp esi, 0x201
cmovae esi, eax
add edx, 1
movzx ebx, word [edi + edx*8 - 8]
mov eax, dword [edi + edx*8 - 4]
test ebx, ebx
jne 0x61af240d
test eax, eax
jne 0x61af241d
add edx, 1
movzx ebx, word [edi + edx*8 - 8]
mov eax, dword [edi + edx*8 - 4]
test ebx, ebx
je 0x61af23f9
mov eax, ebx
or eax, 0xffffff3f
cmp ebx, 0x201
cmovb eax, ebx
cmp esi, eax
jne 0x61af242e
cmp esi, 0x100
jne 0x61af23d4
jmp 0x61af15b9
mov edi, dword [esp + 0x78]
mov edx, dword [edi + 0x10]
test edx, edx
je 0x61af1bb1
mov ecx, esi
and esi, 0xffffff
shr ecx, 0x18
movzx ecx, byte [edx + ecx]
shl ecx, 0x18
or esi, ecx
jmp 0x61af1b9e
cmp eax, 0x200
jbe 0x61af2472
mov ecx, eax
add eax, 0x4000
xor ch, 0xc0
cmp dword [esp + 0x20], 0x10000
cmovae eax, ecx
cmp edx, 0x200
jbe 0x61af2208
mov ecx, edx
add edx, 0x4000
xor ch, 0xc0
cmp dword [esp + 0x24], 0x10000
cmovae edx, ecx
jmp 0x61af2208