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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xec
mov eax, dword [esp + 0x108]
mov edx, dword [esp + 0x110]
mov ecx, dword [eax + 0x14]
mov eax, 1
shl eax, cl
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0x10c]
add eax, dword [esp + 0x110]
mov dword [esp + 0xb8], eax
xor eax, eax
test dword [esp + 0x110], 0xfffff
setne al
shr edx, 0x14
add eax, edx
je 0x46a694
mov edi, dword [esp + 0x104]
mov esi, dword [esp + 0x104]
mov edi, dword [edi + 0xc]
cmp edi, dword [esi + 0x10]
mov dword [esp + 0xac], edi
jae 0x46a694
mov edi, dword [esp + 0x100]
add eax, 0xfff
mov dword [esp + 0xb0], 0
shl eax, 0x14
add eax, dword [esp + 0x10c]
add edi, 0x24
mov dword [esp + 0x64], edi
mov edi, dword [esp + 0x100]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x10c]
add edi, 0x124
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa0], eax
mov edi, eax
mov eax, edi
sub eax, dword [esp + 0x10c]
mov esi, dword [esp + 0x110]
lea ebp, [edi + 0x100000]
mov dword [esp + 0x10], edi
sub esi, eax
mov eax, dword [esp + 0x100]
cmp esi, 0x100000
cmovb ebp, dword [esp + 0xb8]
mov eax, dword [eax + 4]
mov esi, ebp
sub esi, edi
mov dword [esp + 0x30], eax
mov edi, eax
mov eax, ebp
mov dword [esp + 0xa4], esi
sub eax, edi
cmp eax, 0xa0000000
ja 0x46a6a1
mov edi, dword [esp + 0x100]
mov edx, dword [edi + 0x1c]
mov edi, dword [edi + 0x10]
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 0x100]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x58], edi
mov edi, dword [esp + 0xb4]
add edx, edi
cmp edx, eax
jae 0x469c6f
sub eax, edi
cmp eax, dword [esp + 0x5c]
jbe 0x469c53
mov edi, dword [esp + 0x100]
mov dword [esp + 0x5c], eax
mov dword [edi + 0x10], eax
mov edi, dword [esp + 0x5c]
cmp dword [esp + 0x58], edi
jb 0x46a770
mov eax, dword [esp + 0x100]
mov dword [eax + 0x1c], 0
mov eax, dword [esp + 0x108]
mov ebx, dword [esp + 0x58]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x5c]
cmp ebx, eax
jbe 0x46a630
mov edi, dword [esp + 0x100]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov edi, dword [edi + 8]
mov esi, edi
mov dword [esp + 0x8c], edi
add edi, eax
mov dword [esp + 0x80], edi
mov edi, esi
add edi, ebx
cmp dword [esp + 0xa4], edx
mov dword [esp + 0x88], edi
jb 0x46a666
mov esi, dword [esp + 0x108]
mov eax, 0x40
cmp edx, 0x40
mov edi, dword [esp + 0x108]
mov dword [esp + 0xd0], 0xffffffff
mov dword [esp + 0xd4], 0
mov ecx, dword [esi + 0x10]
mov esi, eax
cmovbe esi, edx
xor eax, eax
xor edx, edx
mov ebx, dword [edi + 8]
mov edi, dword [edi + 4]
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
add eax, 0xffffffff
adc edx, 0xffffffff
test ecx, ecx
je 0x469d36
cmp ecx, esi
ja 0x469d36
sub esi, ecx
mov ecx, esi
xor esi, esi
shld edx, eax, cl
shl eax, cl
and ecx, 0x20
cmovne edx, eax
cmovne eax, esi
mov ebp, dword [esp + 0xa0]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xdc], edx
add esi, ebp
mov ecx, esi
add eax, ebp
mov dword [esp + 0x54], esi
sub ecx, 8
mov edx, eax
mov dword [esp + 0x50], eax
cmp ecx, eax
mov dword [esp + 0x9c], ecx
jbe 0x46a1e7
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x58]
sub edi, ebx
mov ecx, edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x7c], eax
mov eax, 1
shl eax, cl
mov ecx, ebx
sub eax, 1
mov dword [esp + 0x6c], eax
mov eax, 8
shl eax, cl
mov dword [esp + 0x74], eax
lea eax, [esi - 1]
mov dword [esp + 0x84], eax
mov eax, edx
lea edi, [esp + 0xcc]
mov ecx, dword [esp + 0x9c]
mov edx, eax
mov dword [esp + 0xcc], 0
mov dword [esp + 4], edi
mov edi, dword [esp + 0x64]
sub ecx, eax
lea eax, [esp + 0xd0]
mov dword [esp], edi
call fcn.004695f0
mov edx, dword [esp + 0xcc]
mov dword [esp + 0x98], eax
test edx, edx
je 0x46a1c3
mov eax, dword [esp + 0xa8]
mov ebp, dword [esp + 0x108]
xor esi, esi
mov dword [esp + 0x28], eax
mov ebx, eax
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x48]
add ebx, 0x10
mov ecx, dword [esp + 0x50]
mov edi, dword [edx + esi*4]
mov dword [esp + 8], 0
add esi, 1
sub ecx, eax
mov dword [esp + 0xc], 0
mov dword [esp + 4], eax
add edi, ecx
mov dword [esp], edi
call fcn.00406e20
and eax, dword [esp + 0x6c]
mov dword [ebx - 0x10], edi
mov edi, dword [esp + 0x100]
mov dword [ebx - 8], edx
mov dword [ebx - 0xc], eax
mov ecx, dword [ebp + 8]
mov edx, dword [edi + 0x18]
shl eax, cl
lea eax, [edx + eax*8]
mov dword [ebx - 4], eax
mov eax, dword [esp + 0xcc]
cmp esi, eax
jb 0x469e13
test eax, eax
je 0x46a1c3
mov eax, dword [esp + 0x54]
mov dword [esp + 0x14], 0
sub eax, 3
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x50]
add eax, dword [esp + 0x98]
mov dword [esp + 0x78], eax
nop
mov eax, dword [esp + 0x28]
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov ebp, dword [eax + 8]
mov ebx, edi
sub ebx, dword [esp + 0x30]
cmp edi, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], ebx
jb 0x46a272
mov eax, dword [eax + 0xc]
mov esi, dword [esp + 0x74]
lea ebx, [eax + esi]
cmp eax, ebx
mov dword [esp + 0x10], ebx
jae 0x46a441
lea ecx, [edi + 4]
mov esi, eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x4c], 0
jmp 0x469f12
add esi, 8
cmp esi, dword [esp + 0x10]
jae 0x46a0f0
cmp ebp, dword [esi + 4]
jne 0x469f05
mov eax, dword [esi]
cmp eax, dword [esp + 0x3c]
jbe 0x469f05
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
cmp ecx, edx
jbe 0x46a2e0
cmp eax, ecx
jae 0x46a3b0
add eax, dword [esp + 0x8c]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
mov ebx, dword [esp + 0x54]
sub eax, edx
add eax, edi
cmp ebx, eax
cmovb eax, ebx
mov ebx, edx
lea ecx, [eax - 3]
cmp edi, ecx
jae 0x46a3d0
mov edx, dword [edx]
mov ebx, dword [edi]
cmp edx, ebx
je 0x46a460
xor edx, ebx
tzcnt edx, edx
sar edx, 3
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x20]
cmp dword [esp + 0x24], eax
je 0x46a40e
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x48], ebx
ja 0x469f05
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x34]
cmp edx, ecx
jae 0x46a79d
cmp edi, dword [esp + 0x1c]
jbe 0x46a79d
movzx eax, byte [ecx - 1]
cmp byte [edi - 1], al
jne 0x46a792
mov eax, edi
mov dword [esp + 0x90], edi
mov dword [esp + 0x94], ebp
xor ebx, ebx
mov ebp, edx
mov edi, dword [esp + 0x1c]
jmp 0x469ff8
mov ebx, dword [esp + 0x24]
sub eax, 1
lea edx, [ebx + 1]
sub ecx, 1
cmp eax, edi
mov dword [esp + 0x24], edx
jbe 0x46a016
cmp ebp, ecx
jae 0x46a016
movzx edx, byte [ecx - 1]
cmp byte [eax - 1], dl
je 0x469ff4
mov edi, dword [esp + 0x90]
mov ebp, dword [esp + 0x94]
lea edx, [ebx + 1]
mov eax, dword [esp + 0x34]
not ebx
mov ecx, dword [esp + 0x70]
add eax, ebx
cmp ecx, eax
jne 0x46a0c0
mov eax, dword [esp + 0x80]
cmp ecx, eax
je 0x46a0c0
lea eax, [edi + ebx]
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x80]
cmp ecx, ebx
jbe 0x46a7c6
cmp eax, dword [esp + 0x1c]
jbe 0x46a7c6
movzx ebx, byte [ecx - 1]
cmp byte [eax - 1], bl
mov ebx, 0
jne 0x46a0b6
mov dword [esp + 0x24], edi
mov dword [esp + 0x34], ebp
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x70], edx
nop
sub eax, 1
sub ecx, 1
add ebx, 1
cmp eax, edi
jbe 0x46a0aa
cmp ecx, ebp
jbe 0x46a0aa
movzx edx, byte [ecx - 1]
cmp byte [eax - 1], dl
je 0x46a090
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x70]
add edx, ebx
nop
lea esi, [esi]
mov ecx, dword [esp + 0x20]
mov eax, ecx
add eax, edx
cmp eax, dword [esp + 0x4c]
jbe 0x469f05
mov dword [esp + 0x38], esi
add esi, 8
cmp esi, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ecx
jb 0x469f12
nop
mov eax, dword [esp + 0x38]
test eax, eax
je 0x46a441
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x104]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x40]
add esi, dword [esp + 0x44]
sub ebx, dword [eax]
mov eax, dword [edx + 0xc]
mov edx, dword [edx]
lea ecx, [eax + eax*2]
lea edx, [edx + ecx*4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x104]
cmp eax, dword [edx + 0x10]
je 0x46a617
mov edx, edi
sub edx, dword [esp + 0x44]
add eax, 1
add edi, dword [esp + 0x40]
mov ecx, edx
sub ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov dword [esp + 0x1c], edi
mov dword [edx], ebx
mov dword [edx + 8], esi
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x104]
mov esi, dword [esp + 0x2c]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x108]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x100]
mov ebx, dword [eax + 0x20]
add ebx, esi
shl esi, cl
movzx edx, byte [ebx]
mov eax, edx
shl edx, 3
lea edx, [edx + esi*8]
mov esi, dword [esp + 0x100]
add eax, 1
add edx, dword [esi + 0x18]
mov esi, dword [esp + 0x18]
mov dword [edx + 4], ebp
mov dword [edx], esi
mov edx, 1
shl edx, cl
sub edx, 1
and eax, edx
cmp edi, dword [esp + 0x78]
mov byte [ebx], al
jbe 0x46a2bb
mov eax, edi
sub eax, dword [esp + 0x98]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0x98]
add dword [esp + 0x50], edi
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x9c], eax
ja 0x469db3
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x54]
sub eax, dword [esp + 0x10]
cmp eax, 0xffffff88
ja 0x46a61c
mov edi, dword [esp + 0x104]
mov edx, dword [edi + 0xc]
mov edi, dword [esp + 0xac]
cmp edx, edi
jbe 0x46a672
lea ebx, [edi + edi*2]
mov edi, dword [esp + 0x104]
mov ecx, dword [edi]
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xa0]
add dword [ecx + ebx*4 + 4], edi
cmp dword [esp + 0xbc], eax
je 0x46a694
add eax, 0x100000
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x104]
cmp dword [eax + 0x10], edx
jbe 0x46a694
mov dword [esp + 0xac], edx
mov edi, dword [esp + 0xa0]
jmp 0x469bbd
mov eax, dword [esp + 0x108]
mov esi, ecx
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x100]
mov ebx, dword [eax + 0x20]
mov edi, dword [esp + 0x100]
add ebx, esi
shl esi, cl
movzx edx, byte [ebx]
mov eax, edx
shl edx, 3
lea edx, [edx + esi*8]
add edx, dword [edi + 0x18]
mov edi, dword [esp + 0x18]
add eax, 1
mov dword [edx], edi
mov dword [edx + 4], ebp
mov edx, 1
shl edx, cl
sub edx, 1
and eax, edx
mov byte [ebx], al
add dword [esp + 0x14], 1
add dword [esp + 0x28], 0x10
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0xcc]
jb 0x469ea0
jmp 0x46a1c3
add eax, dword [esp + 0x30]
cmp edi, dword [esp + 0x68]
jae 0x46a375
mov ecx, dword [eax]
mov edx, dword [edi]
cmp ecx, edx
je 0x46a4b0
xor edx, ecx
tzcnt edx, edx
sar edx, 3
mov dword [esp + 0x20], edx
mov ebx, edx
cmp dword [esp + 0x48], ebx
ja 0x469f05
mov ebx, dword [esp + 0x7c]
cmp ebx, eax
jae 0x46a5a3
cmp edi, dword [esp + 0x1c]
jbe 0x46a5a3
movzx ecx, byte [eax - 1]
cmp byte [edi - 1], cl
jne 0x46a5a3
mov ecx, edi
mov dword [esp + 0x34], edi
mov edi, ebx
mov ebx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x24], ebx
nop
lea esi, [esi]
sub ecx, 1
sub eax, 1
add edx, 1
cmp ecx, dword [esp + 0x24]
jbe 0x46a36c
cmp edi, eax
jae 0x46a36c
movzx ebx, byte [eax - 1]
cmp byte [ecx - 1], bl
je 0x46a350
mov edi, dword [esp + 0x34]
jmp 0x46a0c0
mov ebx, eax
mov edx, edi
cmp edx, dword [esp + 0x84]
jae 0x46a38e
movzx ecx, word [edx]
cmp word [ebx], cx
je 0x46a529
cmp dword [esp + 0x54], edx
jbe 0x46a3a1
movzx ecx, byte [edx]
cmp byte [ebx], cl
sete cl
movzx ecx, cl
add edx, ecx
sub edx, edi
mov dword [esp + 0x20], edx
mov ebx, edx
jmp 0x46a309
add eax, dword [esp + 0x30]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x70], eax
jmp 0x469f58
mov edx, edi
lea ecx, [eax - 1]
cmp edx, ecx
jae 0x46a3e5
movzx ecx, word [edx]
cmp word [ebx], cx
je 0x46a51e
cmp eax, edx
jbe 0x46a3f6
movzx eax, byte [edx]
cmp byte [ebx], al
sete al
movzx eax, al
add edx, eax
sub edx, edi
mov eax, dword [esp + 0x34]
mov dword [esp + 0x20], edx
add eax, dword [esp + 0x20]
cmp dword [esp + 0x24], eax
jne 0x469fa5
mov eax, dword [esp + 0x20]
lea ecx, [edi + eax]
cmp ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x7c]
jae 0x46a4eb
mov eax, dword [eax]
mov edx, dword [ecx]
cmp eax, edx
je 0x46a5aa
xor eax, edx
tzcnt eax, eax
sar eax, 3
add dword [esp + 0x20], eax
jmp 0x469fa5
mov eax, dword [esp + 0x108]
mov esi, dword [esp + 0x2c]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x100]
jmp 0x46a285
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x60]
add ebx, 4
cmp ecx, dword [esp + 0x60]
jbe 0x46a3d2
mov edx, dword [esp + 0x34]
mov edx, dword [edx + 4]
mov dword [esp + 0x20], edx
mov edx, dword [edi + 4]
cmp edx, dword [esp + 0x20]
je 0x46a534
mov ebx, dword [esp + 0x20]
xor ebx, edx
mov edx, dword [esp + 0x60]
tzcnt ebx, ebx
sar ebx, 3
add edx, ebx
sub edx, edi
mov dword [esp + 0x20], edx
jmp 0x469f93
mov edx, dword [esp + 0x60]
cmp dword [esp + 0x68], edx
lea ebx, [eax + 4]
jbe 0x46a379
mov edx, dword [eax + 4]
mov ecx, dword [edi + 4]
cmp ecx, edx
je 0x46a572
xor ecx, edx
mov edx, dword [esp + 0x60]
tzcnt ecx, ecx
sar ecx, 3
add edx, ecx
sub edx, edi
mov dword [esp + 0x20], edx
mov ebx, edx
jmp 0x46a309
mov ebx, ecx
cmp ebx, dword [esp + 0x84]
jae 0x46a502
movzx edx, word [ebx]
cmp word [eax], dx
je 0x46a787
cmp dword [esp + 0x54], ebx
jbe 0x46a515
movzx edx, byte [ebx]
cmp byte [eax], dl
sete al
movzx eax, al
add ebx, eax
mov eax, ebx
sub eax, ecx
jmp 0x46a438
add edx, 2
add ebx, 2
jmp 0x46a3e5
add edx, 2
add ebx, 2
jmp 0x46a38e
mov edx, dword [esp + 0x60]
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], eax
add edx, 4
add ebx, 4
cmp ecx, edx
jbe 0x46a7b3
mov esi, dword [edx]
mov eax, dword [ebx]
cmp eax, esi
mov dword [esp + 0x20], esi
je 0x46a546
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x90]
xor ebx, eax
jmp 0x46a497
mov edx, dword [esp + 0x60]
mov dword [esp + 0x24], eax
add edx, 4
add ebx, 4
cmp dword [esp + 0x68], edx
jbe 0x46a7aa
mov eax, dword [edx]
mov ecx, dword [ebx]
cmp ecx, eax
mov dword [esp + 0x20], eax
je 0x46a57a
mov eax, dword [esp + 0x24]
xor ecx, dword [esp + 0x20]
jmp 0x46a4d5
xor edx, edx
jmp 0x46a0c0
mov eax, dword [esp + 0x7c]
lea ebx, [ecx + 4]
add eax, 4
cmp ebx, dword [esp + 0x68]
jae 0x46a4ed
mov edx, dword [esp + 0x7c]
mov edx, dword [edx + 4]
mov dword [esp + 0x24], edx
mov edx, dword [ecx + 4]
cmp dword [esp + 0x24], edx
je 0x46a5e8
mov eax, dword [esp + 0x24]
xor eax, edx
tzcnt eax, eax
sar eax, 3
add eax, ebx
sub eax, ecx
jmp 0x46a438
add ebx, 4
add eax, 4
cmp ebx, dword [esp + 0x68]
jae 0x46a4ed
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [ebx]
cmp dword [esp + 0x24], edx
mov dword [esp + 0x90], edx
je 0x46a5e8
mov eax, edx
mov edx, dword [esp + 0x24]
xor eax, edx
jmp 0x46a5d8
mov eax, 0xffffffba
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x48]
cmp dword [esp + 0xa4], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x80], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
jae 0x469cc9
mov eax, dword [esp + 0xa4]
jmp 0x46a1ef
mov edi, dword [esp + 0xa4]
mov eax, dword [esp + 0xa0]
add dword [esp + 0xb0], edi
cmp dword [esp + 0xbc], eax
jne 0x46a243
add esp, 0xec
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x108]
mov ebx, edi
mov edi, dword [esp + 0xb4]
mov ecx, dword [eax + 4]
mov eax, 1
mov esi, eax
shl esi, cl
test edi, edi
cmovne eax, edi
mov edi, 0xfffffffe
sub edi, eax
mov eax, dword [esp + 0xa0]
sub eax, ebx
add edi, eax
mov eax, dword [esp + 0x100]
add ebx, edi
lea edx, [edi + 2]
mov dword [esp + 0x30], ebx
mov dword [eax + 4], ebx
add dword [eax + 8], edi
mov eax, dword [eax + 0x10]
mov ebx, eax
sub eax, edi
cmp ebx, edx
mov ebx, 2
cmovb eax, ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 0x5c], eax
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0xc]
mov ebx, eax
sub eax, edi
cmp edx, ebx
mov ebx, 2
cmovbe ebx, eax
mov eax, dword [esp + 0x100]
mov dword [esp + 0x58], ebx
add dword [eax + 0x14], 1
test esi, esi
mov dword [eax + 0xc], ebx
mov eax, dword [eax + 0x18]
je 0x46a755
mov edx, 8
xor esi, esi
shl edx, cl
lea ebx, [eax + edx]
nop
mov ecx, dword [eax]
mov edx, ecx
sub edx, edi
cmp ecx, edi
cmovb edx, esi
add eax, 8
mov dword [eax - 8], edx
cmp ebx, eax
jne 0x46a740
mov eax, dword [esp + 0x100]
xor edx, edx
mov dword [eax + 0x1c], 0
mov eax, ebp
sub eax, dword [esp + 0x30]
jmp 0x469c30
mov eax, edi
mov edi, dword [esp + 0x100]
mov dword [esp + 0x58], eax
mov dword [edi + 0xc], eax
mov eax, edi
jmp 0x469c68
add ebx, 2
add eax, 2
jmp 0x46a502
xor ebx, ebx
xor edx, edx
mov eax, ecx
jmp 0x46a02d
xor ebx, ebx
xor edx, edx
mov eax, dword [esp + 0x34]
jmp 0x46a02d
mov eax, dword [esp + 0x24]
jmp 0x46a379
mov esi, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
jmp 0x46a3d2
xor ebx, ebx
jmp 0x46a0b6