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

Disassembly:
sub esp, 0x60
push ebx
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x1a74]
mov ecx, dword [edi + 0x1a78]
mov edx, dword [edi + 0x1a7c]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x1a80]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x1a84]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], ecx
mov eax, dword [edi + 0x68]
mov ecx, dword [edi + 0x64]
mov edx, eax
sub edx, ecx
and edx, 0x3fffff
cmp edx, 0x104
jae 0x100a88ca
cmp eax, ecx
je 0x100a88ca
mov ecx, edi
call fcn.100a7490
test eax, eax
jne 0x100a939f
mov eax, dword [edi + 0x84]
mov ecx, dword [edi + 0x7c]
cmp eax, ecx
ja 0x100a9339
jb 0x100a88ca
mov ecx, dword [edi + 0x80]
mov eax, dword [edi + 0x78]
cmp ecx, eax
ja 0x100a9339
cmp dword [edi + 0x50], 2
ja 0x100a939a
mov eax, dword [edi + 0x2c]
lea esi, [edi + 0x28]
cmp eax, 0xf
jae 0x100a8958
add eax, 8
lea ebx, [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, ecx
jb 0x100a88fe
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x24], al
jmp 0x100a8907
mov dl, byte [eax]
inc eax
mov byte [esp + 0x24], dl
mov dword [ebx], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x24]
shl eax, 8
and ecx, 0xff
or eax, ecx
mov dword [esi], eax
mov eax, dword [esi + 4]
cmp eax, 0xf
jae 0x100a8958
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x100a893c
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x28], al
jmp 0x100a8945
mov dl, byte [eax]
inc eax
mov byte [esp + 0x28], dl
mov dword [ebx], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x28]
shl eax, 8
and ecx, 0xff
or eax, ecx
mov dword [esi], eax
mov ecx, dword [esi + 4]
mov ebp, dword [esi]
mov eax, dword [edi + 0xb0]
sub ecx, 0xf
shr ebp, cl
cmp ebp, eax
jae 0x100a898e
shr ebp, 6
xor ebx, ebx
mov ecx, esi
mov bx, word [edi + ebp*2 + 0x110]
mov edx, ebx
and edx, 0xf
push edx
call fcn.100a8780
shr ebx, 4
jmp 0x100a8a4f
mov ecx, dword [edi + 0xb4]
lea eax, [edi + 0xb4]
cmp ebp, ecx
mov ebx, 0xa
jb 0x100a8a22
mov ecx, dword [eax + 4]
add eax, 4
inc ebx
cmp ebp, ecx
jae 0x100a89a3
cmp ebx, 0xf
jbe 0x100a8a22
or ebx, 0xffffffff
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
cmp ebx, 0x10f
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
jae 0x100a8d9a
mov ecx, dword [esi + 4]
sub ebx, 0x107
xor eax, eax
mov al, byte [ebx + 0x100e3cac]
cmp ecx, eax
mov dword [esp + 0x14], eax
jae 0x100a8d66
add ecx, 8
lea ebp, [esi + 8]
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
cmp ecx, edx
jb 0x100a8d06
mov ecx, ebp
call fcn.1000672c
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0x14]
jmp 0x100a8d10
push ebx
mov ecx, esi
call fcn.100a8780
mov ecx, dword [edi + ebx*4 + 0x88]
mov eax, dword [edi + ebx*4 + 0xd0]
sub ebp, ecx
mov ecx, 0xf
sub ecx, ebx
shr ebp, cl
add ebp, eax
xor ebx, ebx
mov bx, word [edi + ebp*2 + 0x510]
cmp ebx, 0x100
jae 0x100a8a84
mov eax, dword [edi + 0x60]
mov ecx, dword [edi + 0x64]
mov byte [eax + ecx], bl
mov edx, dword [edi + 0x64]
mov ecx, dword [edi + 0x70]
inc edx
and edx, 0x3fffff
add ecx, 1
mov dword [edi + 0x70], ecx
mov eax, dword [edi + 0x74]
adc eax, 0
mov dword [edi + 0x64], edx
mov dword [edi + 0x74], eax
jmp 0x100a887b
je 0x100a934c
cmp ebx, 0x101
jne 0x100a8aa6
mov ecx, edi
call fcn.100a7be0
test al, al
je 0x100a939a
jmp 0x100a887b
cmp ebx, 0x102
jne 0x100a8ac3
mov edx, dword [esp + 0x14]
test edx, edx
je 0x100a939a
mov ebp, dword [esp + 0x10]
jmp 0x100a92a8
cmp ebx, 0x107
jae 0x100a89b6
cmp ebx, 0x103
je 0x100a8b13
cmp ebx, 0x104
jne 0x100a8ae5
mov eax, dword [esp + 0x18]
jmp 0x100a8b07
cmp ebx, 0x105
jne 0x100a8af3
mov eax, dword [esp + 0x1c]
jmp 0x100a8aff
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 4]
cmp eax, 0xf
jae 0x100a8b94
add eax, 8
lea ebx, [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, ecx
jb 0x100a8b3a
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x2c], al
jmp 0x100a8b43
mov dl, byte [eax]
inc eax
mov byte [esp + 0x2c], dl
mov dword [ebx], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x2c]
shl eax, 8
and ecx, 0xff
or eax, ecx
mov dword [esi], eax
mov eax, dword [esi + 4]
cmp eax, 0xf
jae 0x100a8b94
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x100a8b78
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x30], al
jmp 0x100a8b81
mov dl, byte [eax]
inc eax
mov byte [esp + 0x30], dl
mov dword [ebx], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x30]
shl eax, 8
and ecx, 0xff
or eax, ecx
mov dword [esi], eax
mov edx, dword [esi]
mov ecx, dword [esi + 4]
mov eax, dword [edi + 0x1130]
sub ecx, 0xf
mov ebp, edx
shr ebp, cl
cmp ebp, eax
jae 0x100a8bd9
mov ebx, dword [esi + 4]
xor eax, eax
shr ebp, 6
mov ax, word [edi + ebp*2 + 0x1190]
mov ecx, eax
and ecx, 0xf
sub ebx, ecx
mov dword [esi + 4], ebx
mov ecx, ebx
mov ebx, 1
shl ebx, cl
dec ebx
and ebx, edx
shr eax, 4
mov dword [esi], ebx
mov ebx, eax
jmp 0x100a8c2f
mov ecx, dword [edi + 0x1134]
lea eax, [edi + 0x1134]
cmp ebp, ecx
mov ebx, 0xa
jb 0x100a8c02
mov ecx, dword [eax + 4]
add eax, 4
inc ebx
cmp ebp, ecx
jae 0x100a8bee
cmp ebx, 0xf
ja 0x100a939a
push ebx
mov ecx, esi
call fcn.100a8780
mov ecx, dword [edi + ebx*4 + 0x1108]
mov eax, dword [edi + ebx*4 + 0x1150]
sub ebp, ecx
mov ecx, 0xf
sub ecx, ebx
shr ebp, cl
add ebp, eax
xor ebx, ebx
mov bx, word [edi + ebp*2 + 0x1590]
cmp ebx, 0x1c
jae 0x100a939a
mov ecx, dword [esi + 4]
xor eax, eax
mov al, byte [ebx + 0x100e3c4c]
cmp ecx, eax
mov dword [esp + 0x14], eax
jae 0x100a8cd3
add ecx, 8
lea ebp, [esi + 8]
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
cmp ecx, edx
jb 0x100a8c73
mov ecx, ebp
call fcn.1000672c
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x14]
jmp 0x100a8c7d
mov dl, byte [ecx]
inc ecx
mov byte [esp + 0x34], dl
mov dword [ebp], ecx
mov ecx, dword [esi]
mov edx, dword [esp + 0x34]
shl ecx, 8
and edx, 0xff
or ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
cmp ecx, eax
jae 0x100a8cd3
add ecx, 8
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
cmp ecx, dword [ebp + 4]
jb 0x100a8cb6
mov ecx, ebp
call fcn.1000672c
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x14]
jmp 0x100a8cc0
mov dl, byte [ecx]
inc ecx
mov byte [esp + 0x38], dl
mov dword [ebp], ecx
mov ecx, dword [esi]
mov edx, dword [esp + 0x38]
shl ecx, 8
and edx, 0xff
or ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
sub ecx, eax
mov ebp, 1
shl ebp, cl
mov eax, edx
mov dword [esi + 4], ecx
shr eax, cl
dec ebp
and ebp, edx
xor ecx, ecx
mov dword [esi], ebp
mov cl, byte [ebx + 0x100e3c30]
mov ebp, dword [esp + 0x10]
lea edx, [ecx + eax + 2]
mov dword [esp + 0x14], edx
jmp 0x100a92a8
mov dl, byte [ecx]
inc ecx
mov byte [esp + 0x3c], dl
mov dword [ebp], ecx
mov ecx, dword [esi]
mov edx, dword [esp + 0x3c]
shl ecx, 8
and edx, 0xff
or ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
cmp ecx, eax
jae 0x100a8d66
add ecx, 8
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
cmp ecx, dword [ebp + 4]
jb 0x100a8d49
mov ecx, ebp
call fcn.1000672c
mov byte [esp + 0x40], al
mov eax, dword [esp + 0x14]
jmp 0x100a8d53
mov dl, byte [ecx]
inc ecx
mov byte [esp + 0x40], dl
mov dword [ebp], ecx
mov ecx, dword [esi]
mov edx, dword [esp + 0x40]
shl ecx, 8
and edx, 0xff
or ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
sub ecx, eax
mov ebp, 1
shl ebp, cl
mov eax, edx
mov dword [esi + 4], ecx
shr eax, cl
xor ecx, ecx
dec ebp
and ebp, edx
mov edx, 2
mov dword [esi], ebp
mov cl, byte [ebx + 0x100e3ca4]
mov ebp, ecx
add ebp, eax
mov dword [esp + 0x10], ebp
jmp 0x100a92a4
cmp ebx, 0x12b
jae 0x100a939a
mov ecx, dword [esi + 4]
sub ebx, 0x10f
xor eax, eax
mov al, byte [ebx + 0x100e3c4c]
cmp ecx, eax
mov dword [esp + 0x14], eax
jae 0x100a8e47
add ecx, 8
lea ebp, [esi + 8]
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
mov edx, dword [ebp + 4]
cmp ecx, edx
jb 0x100a8de7
mov ecx, ebp
call fcn.1000672c
mov byte [esp + 0x44], al
mov eax, dword [esp + 0x14]
jmp 0x100a8df1
mov dl, byte [ecx]
inc ecx
mov byte [esp + 0x44], dl
mov dword [ebp], ecx
mov ecx, dword [esi]
mov edx, dword [esp + 0x44]
shl ecx, 8
and edx, 0xff
or ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
cmp ecx, eax
jae 0x100a8e47
add ecx, 8
mov dword [esi + 4], ecx
mov ecx, dword [ebp]
cmp ecx, dword [ebp + 4]
jb 0x100a8e2a
mov ecx, ebp
call fcn.1000672c
mov byte [esp + 0x48], al
mov eax, dword [esp + 0x14]
jmp 0x100a8e34
mov dl, byte [ecx]
inc ecx
mov byte [esp + 0x48], dl
mov dword [ebp], ecx
mov ecx, dword [esi]
mov edx, dword [esp + 0x48]
shl ecx, 8
and edx, 0xff
or ecx, edx
mov dword [esi], ecx
mov ecx, dword [esi + 4]
mov edx, dword [esi]
sub ecx, eax
mov ebp, 1
shl ebp, cl
mov eax, edx
mov dword [esi + 4], ecx
shr eax, cl
xor ecx, ecx
dec ebp
and ebp, edx
mov dword [esi], ebp
mov cl, byte [ebx + 0x100e3c30]
lea edx, [ecx + eax + 3]
mov eax, dword [esi + 4]
cmp eax, 0xf
mov dword [esp + 0x14], edx
jae 0x100a8ef0
add eax, 8
lea ebx, [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, ecx
jb 0x100a8e98
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x4c], al
jmp 0x100a8ea1
mov cl, byte [eax]
inc eax
mov byte [esp + 0x4c], cl
mov dword [ebx], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x4c]
shl edx, 8
and eax, 0xff
or edx, eax
mov eax, dword [esi + 4]
cmp eax, 0xf
mov dword [esi], edx
jae 0x100a8ef0
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x100a8ed5
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x50], al
jmp 0x100a8ede
mov cl, byte [eax]
inc eax
mov byte [esp + 0x50], cl
mov dword [ebx], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x50]
shl edx, 8
and eax, 0xff
or edx, eax
mov dword [esi], edx
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, 0xf
mov eax, ebx
shr eax, cl
cmp eax, dword [edi + 0x78c]
jae 0x100a8f31
shr eax, 6
xor edx, edx
mov dx, word [edi + eax*2 + 0x7ec]
mov eax, dword [esi + 4]
mov ecx, edx
and ecx, 0xf
sub eax, ecx
mov dword [esi + 4], eax
mov ecx, eax
mov eax, 1
shl eax, cl
dec eax
and eax, ebx
mov dword [esi], eax
shr edx, 4
jmp 0x100a8f95
mov ebp, dword [edi + 0x790]
lea ecx, [edi + 0x790]
cmp eax, ebp
mov edx, 0xa
jb 0x100a8f5a
mov ebp, dword [ecx + 4]
add ecx, 4
inc edx
cmp eax, ebp
jae 0x100a8f46
cmp edx, 0xf
ja 0x100a939a
mov ebp, dword [esi + 4]
sub ebp, edx
mov dword [esi + 4], ebp
mov ecx, ebp
mov ebp, 1
shl ebp, cl
dec ebp
and ebp, ebx
mov dword [esi], ebp
mov ecx, dword [edi + edx*4 + 0x764]
sub eax, ecx
mov ecx, 0xf
sub ecx, edx
shr eax, cl
mov ecx, dword [edi + edx*4 + 0x7ac]
add eax, ecx
xor edx, edx
mov dx, word [edi + eax*2 + 0xbec]
cmp edx, 0x3c
jae 0x100a939a
mov ebp, dword [edx*4 + 0x100f9388]
xor ecx, ecx
mov cl, byte [edx + 0x100e3c68]
cmp edx, 0xa
mov dword [esp + 0x10], ecx
jb 0x100a91e2
cmp ecx, 4
jbe 0x100a906f
mov eax, dword [esi + 4]
add ecx, 0xfffffffc
cmp eax, ecx
mov dword [esp + 0x10], ecx
jae 0x100a904c
add eax, 8
lea ebx, [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
cmp eax, edx
jb 0x100a8ff4
mov ecx, ebx
call fcn.1000672c
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x54], al
jmp 0x100a8ffd
mov dl, byte [eax]
inc eax
mov byte [esp + 0x54], dl
mov dword [ebx], eax
mov eax, dword [esi]
mov edx, dword [esp + 0x54]
shl eax, 8
and edx, 0xff
or eax, edx
mov dword [esi], eax
mov eax, dword [esi + 4]
cmp eax, ecx
jae 0x100a904c
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x100a9031
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x58], al
jmp 0x100a903a
mov cl, byte [eax]
inc eax
mov byte [esp + 0x58], cl
mov dword [ebx], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x58]
shl edx, 8
and eax, 0xff
or edx, eax
mov dword [esi], edx
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
sub ecx, eax
mov ebx, 1
mov eax, edx
shl ebx, cl
shr eax, cl
mov dword [esi + 4], ecx
dec ebx
and ebx, edx
shl eax, 4
mov dword [esi], ebx
add ebp, eax
mov eax, dword [edi + 0x1c74]
test eax, eax
jbe 0x100a908b
dec eax
mov dword [edi + 0x1c74], eax
mov eax, dword [edi + 0x1c70]
jmp 0x100a9282
mov eax, dword [esi + 4]
cmp eax, 0xf
jae 0x100a910a
add eax, 8
lea ebx, [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
cmp eax, ecx
jb 0x100a90b2
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x5c], al
jmp 0x100a90bb
mov cl, byte [eax]
inc eax
mov byte [esp + 0x5c], cl
mov dword [ebx], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x5c]
shl edx, 8
and eax, 0xff
or edx, eax
mov eax, dword [esi + 4]
cmp eax, 0xf
mov dword [esi], edx
jae 0x100a910a
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x100a90ef
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x60], al
jmp 0x100a90f8
mov cl, byte [eax]
inc eax
mov byte [esp + 0x60], cl
mov dword [ebx], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x60]
shl edx, 8
and eax, 0xff
or edx, eax
mov dword [esi], edx
mov ebx, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, 0xf
mov eax, ebx
shr eax, cl
cmp eax, dword [edi + 0xc88]
jae 0x100a914b
shr eax, 6
xor edx, edx
mov dx, word [edi + eax*2 + 0xce8]
mov eax, dword [esi + 4]
mov ecx, edx
and ecx, 0xf
sub eax, ecx
mov dword [esi + 4], eax
mov ecx, eax
mov eax, 1
shl eax, cl
dec eax
and eax, ebx
mov dword [esi], eax
shr edx, 4
jmp 0x100a91b1
mov ebx, dword [edi + 0xc8c]
lea ecx, [edi + 0xc8c]
cmp eax, ebx
mov edx, 0xa
jb 0x100a9174
mov ebx, dword [ecx + 4]
add ecx, 4
inc edx
cmp eax, ebx
jae 0x100a9160
cmp edx, 0xf
ja 0x100a939a
mov ebx, dword [esi + 4]
sub ebx, edx
mov dword [esi + 4], ebx
mov ecx, ebx
mov ebx, 1
shl ebx, cl
mov ecx, dword [esi]
dec ebx
and ebx, ecx
mov dword [esi], ebx
mov ecx, dword [edi + edx*4 + 0xc60]
sub eax, ecx
mov ecx, 0xf
sub ecx, edx
shr eax, cl
mov ecx, dword [edi + edx*4 + 0xca8]
add eax, ecx
xor edx, edx
mov dx, word [edi + eax*2 + 0x10e8]
cmp edx, 0x10
jae 0x100a91c7
add ebp, edx
mov dword [edi + 0x1c70], edx
mov dword [esp + 0x10], ebp
jmp 0x100a9288
jne 0x100a939a
mov eax, dword [edi + 0x1c70]
mov dword [edi + 0x1c74], 0xf
jmp 0x100a9282
mov eax, dword [esi + 4]
cmp eax, ecx
jae 0x100a9264
add eax, 8
lea ebx, [esi + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
cmp eax, edx
jb 0x100a920c
mov ecx, ebx
call fcn.1000672c
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x64], al
jmp 0x100a9215
mov dl, byte [eax]
inc eax
mov byte [esp + 0x64], dl
mov dword [ebx], eax
mov eax, dword [esi]
mov edx, dword [esp + 0x64]
shl eax, 8
and edx, 0xff
or eax, edx
mov dword [esi], eax
mov eax, dword [esi + 4]
cmp eax, ecx
jae 0x100a9264
add eax, 8
mov dword [esi + 4], eax
mov eax, dword [ebx]
cmp eax, dword [ebx + 4]
jb 0x100a9249
mov ecx, ebx
call fcn.1000672c
mov byte [esp + 0x68], al
jmp 0x100a9252
mov cl, byte [eax]
inc eax
mov byte [esp + 0x68], cl
mov dword [ebx], eax
mov edx, dword [esi]
mov eax, dword [esp + 0x68]
shl edx, 8
and eax, 0xff
or edx, eax
mov dword [esi], edx
mov ecx, dword [esi + 4]
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
sub ecx, eax
mov ebx, 1
mov eax, edx
shl ebx, cl
shr eax, cl
mov dword [esi + 4], ecx
dec ebx
and ebx, edx
mov dword [esi], ebx
add ebp, eax
mov dword [esp + 0x10], ebp
mov eax, dword [esp + 0x14]
mov edx, 0x3fffe
mov ecx, 0x1ffe
sub edx, ebp
sub ecx, ebp
shr edx, 0x1f
shr ecx, 0x1f
add edx, eax
add edx, ecx
mov dword [esp + 0x14], edx
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x70]
xor esi, esi
cmp esi, eax
ja 0x100a939a
jb 0x100a92c2
cmp ebp, ecx
jae 0x100a939a
mov esi, edx
xor ebx, ebx
add esi, ecx
mov ecx, dword [edi + 0x64]
adc ebx, eax
mov eax, ecx
mov dword [edi + 0x70], esi
mov esi, dword [edi + 0x60]
mov dword [edi + 0x74], ebx
sub eax, ebp
mov ebx, 0x400000
dec eax
sub ebx, ecx
and eax, 0x3fffff
cmp ebx, edx
mov dword [esp + 0x6c], edx
jbe 0x100a9317
mov ebx, 0x400000
sub ebx, eax
cmp ebx, edx
jbe 0x100a9317
add eax, esi
add esi, ecx
add ecx, edx
mov dword [edi + 0x64], ecx
mov ecx, esi
sub ecx, eax
mov esi, edx
mov dl, byte [eax]
mov byte [eax + ecx], dl
inc eax
dec esi
jne 0x100a9309
jmp 0x100a887b
mov ebp, dword [esp + 0x6c]
mov dl, byte [esi + eax]
mov byte [ecx + esi], dl
inc ecx
and ecx, 0x3fffff
inc eax
and eax, 0x3fffff
dec ebp
jne 0x100a931b
mov dword [edi + 0x64], ecx
jmp 0x100a887b
mov eax, dword [esp + 0x74]
pop edi
pop esi
pop ebp
mov byte [eax], 0
xor eax, eax
pop ebx
add esp, 0x60
ret 4
mov ecx, dword [esp + 0x74]
push ecx
mov ecx, edi
call fcn.100a87b0
test eax, eax
jne 0x100a939f
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0x1a74], edx
mov edx, dword [esp + 0x20]
mov dword [edi + 0x1a78], eax
mov eax, dword [esp + 0x14]
mov dword [edi + 0x1a7c], ecx
mov dword [edi + 0x1a80], edx
mov dword [edi + 0x1a84], eax
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x60
ret 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x60
ret 4