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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov ebx, dword [esp + 0x7c]
lea eax, [edx + ecx]
mov ebp, ecx
cmp edx, 0xf
mov dword [esp + 0x3c], eax
jbe 0x429aa9
mov esi, edx
mov edx, dword [esp + 0x74]
lea ecx, [ebp + 1]
mov eax, esi
sub eax, dword [esp + 0x8c]
add edx, 0xfffffff0
cmp eax, edx
cmovb edx, eax
mov eax, ebx
sub eax, ecx
jb 0x429e71
cmp eax, 7
mov dword [esp + 0xc], ecx
jbe 0x429d3b
xor eax, eax
add edx, ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x10], 0xffffffff
sub eax, dword [esp + 0x88]
mov dword [esp + 0x48], edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x78]
mov edi, dword [eax + ebp + 1]
mov edx, dword [eax + ebp + 5]
mov ebp, dword [esp + 0x8c]
mov ecx, ebp
mov eax, edi
neg ecx
shl ecx, 3
and ecx, 0x38
shld edx, edi, cl
shl eax, cl
xor edi, edi
test cl, 0x20
mov dword [esp + 0x18], ecx
cmovne edx, eax
cmovne eax, edi
imul ecx, edx, 0x1e35a7bd
mov edx, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, dword [esp + 0x14]
and ecx, 0x3f
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov edi, ecx
mov dword [esp + 0x14], ecx
cmove edx, eax
mov eax, dword [esp + 0x9c]
sub ebp, esi
mov dword [esp], edx
mov edx, dword [esp + 0x48]
sub ebp, dword [esp + 4]
mov eax, dword [eax]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x54], ecx
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov edi, dword [esp + 0xc]
lea eax, [edi + 1]
cmp eax, edx
ja 0x429aa1
mov esi, dword [esp]
mov ebp, 0x21
jmp 0x428b8b
mov eax, edi
sub eax, ebp
cmp eax, 0x3fff0
jbe 0x428d30
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
mov eax, ebp
inc ebp
shr eax, 5
add eax, edi
cmp eax, edx
ja 0x429aa1
mov ecx, eax
mov eax, ebx
sub eax, ecx
jb 0x429d71
cmp eax, 7
jbe 0x429d3b
mov eax, dword [esp + 0x78]
mov dword [esp], esi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], ebp
mov edx, dword [eax + ecx]
mov esi, dword [eax + ecx + 4]
mov ecx, dword [esp + 0x18]
mov eax, edx
shld esi, edx, cl
mov edx, 0x1e35a7bd
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne esi, eax
cmovne eax, ecx
mul edx
imul ecx, esi, 0x1e35a7bd
mov esi, edx
mov edx, ebx
add esi, ecx
mov ecx, dword [esp + 0x14]
shrd eax, esi, cl
shr esi, cl
test cl, 0x20
cmove esi, eax
sub edx, edi
jb 0x429d7d
mov ebp, edi
mov eax, ebx
sub ebp, dword [esp + 0x10]
sub eax, ebp
jb 0x429d8b
cmp edx, 3
jbe 0x429d14
cmp eax, 3
mov dword [esp + 0xc], edi
jbe 0x429d14
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0xc]
add ecx, edi
mov ebx, dword [ecx]
cmp ebx, dword [edi + ebp]
mov ebx, dword [esp + 0x7c]
jne 0x428cc0
cmp dword [esp + 0x8c], 4
mov byte [esp + 8], 1
je 0x428c86
cmp edx, 5
jb 0x429b4b
cmp eax, 4
jbe 0x429b5f
movzx ebx, byte [ecx + 4]
cmp bl, byte [edi + ebp + 4]
mov ebx, dword [esp + 0x7c]
jne 0x428cc0
cmp edx, 6
jb 0x429b84
cmp eax, 5
jbe 0x429b98
movzx eax, byte [ecx + 5]
cmp al, byte [edi + ebp + 5]
sete byte [esp + 8]
cmp byte [esp + 8], 0
je 0x428cc0
cmp ebp, dword [esp + 0xc]
jae 0x428cc0
mov ecx, dword [esp]
cmp ecx, dword [esp + 0x84]
jae 0x429b73
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x80]
mov dword [eax + ecx*4], edi
jmp 0x428b60
mov eax, dword [esp]
cmp eax, dword [esp + 0x84]
jae 0x429b38
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x80]
mov ebp, dword [edi + eax*4]
mov edi, dword [esp + 0xc]
mov dword [ebx + eax*4], edi
mov eax, dword [esp + 0x7c]
sub eax, ebp
jb 0x429d99
mov edi, dword [esp + 0x78]
lea ebx, [edi + ebp]
push dword [esp + 0x8c]
push eax
push ebx
call fcn.00429f50
add esp, 0xc
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp + 0xc]
test al, al
jne 0x428b60
jmp 0x428b6f
mov ecx, dword [esp + 0x8c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov edx, ebx
add ebp, ecx
sub edx, ebp
jb 0x429e95
add ecx, edi
mov esi, ebx
sub esi, ecx
jb 0x429ea3
sub eax, ecx
cmp eax, edx
ja 0x429eaf
cmp eax, esi
ja 0x429ebb
mov edx, dword [esp + 0x78]
mov esi, 0xffffffff
add ebp, edx
add ecx, edx
mov edx, dword [esp + 0x58]
add edx, edi
nop dword [eax]
lea edi, [edx + esi]
cmp edi, 0xffffffff
je 0x428d9e
movzx ebx, byte [ebp + esi + 1]
lea edi, [esi + 1]
cmp bl, byte [ecx + esi + 1]
mov ebx, dword [esp + 0x7c]
mov esi, edi
je 0x428d80
jmp 0x428da0
mov edi, eax
mov esi, dword [esp + 0xc]
mov ebp, dword [esp + 4]
mov edx, dword [esp + 0x98]
sub esi, ebp
mov ecx, esi
call fcn.0042a040
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x44]
inc eax
mov dword [ecx], eax
mov ecx, edx
sub ecx, esi
mov dword [esp + 0x4c], ecx
jb 0x429ec9
cmp dword [esp + 0xc], ebp
mov dword [esp], edi
jb 0x429ed5
add ebp, dword [esp + 0x78]
push esi
push ebp
mov edi, dword [esp + 0x5c]
push edi
call fcn.007bd9b0
add esp, 0xc
mov ecx, dword [esp + 0x50]
add edi, esi
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x94]
mov dword [esp + 0x54], edi
add ecx, esi
mov esi, dword [esp + 0x90]
mov dword [eax], ecx
mov dword [esp + 0x50], ecx
mov dword [esi], edi
mov dword [esi + 4], edx
mov edx, dword [esp + 8]
mov edi, dword [esp + 0x98]
cmp edx, dword [esp + 0x10]
jne 0x428e53
mov eax, dword [edi + 4]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x429c83
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov dword [eax], 0x40
mov dword [esp + 8], ecx
jmp 0x428e97
mov eax, dword [edi + 4]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x429bac
lea eax, [edx + 3]
mov cl, 0x1e
xor ebx, ebx
bsr edx, eax
xor edx, 0x1f
sub cl, dl
movzx esi, cl
bt eax, esi
setb bl
add edx, edx
lea esi, [ebx + 2]
xor edx, 0x3e
shl esi, cl
sub eax, esi
shl eax, 8
or edx, eax
mov eax, dword [edi]
lea ecx, [edx + ebx + 0x4c]
mov ebx, dword [esp + 0x7c]
mov dword [eax], ecx
mov ebp, dword [esp]
mov ecx, dword [esp + 0x1c]
lea edx, [eax + 4]
mov dword [edi], edx
add ebp, dword [esp + 0x8c]
lea esi, [ecx - 1]
mov ecx, dword [esp + 0x9c]
mov dword [edi + 4], esi
mov edi, ebp
mov ebp, dword [esp + 0x38]
add ebp, 2
cmp edi, 0xc
mov dword [esp + 0x38], ebp
mov dword [ecx], ebp
jae 0x428eec
test esi, esi
je 0x429c91
lea ecx, [edi + 0x14]
mov ebp, 1
mov dword [edx], ecx
mov ecx, 2
mov edx, 0xfffffffe
jmp 0x428fe0
cmp edi, 0x48
jae 0x428f0b
test esi, esi
je 0x429d06
mov esi, edi
mov dword [esp], edi
add esi, 0xfffffff8
je 0x428f68
bsr edi, esi
xor edi, 0x1f
jmp 0x428f6d
cmp edi, 0x88
jae 0x428f41
test esi, esi
je 0x429d1f
lea ecx, [edi - 8]
mov dword [esp], edi
mov edi, ecx
and ecx, 0x1f
shr edi, 5
shl ecx, 8
add edi, 0x36
or ecx, edi
cmp esi, 1
mov dword [edx], ecx
je 0x429d2d
mov edi, dword [esp]
jmp 0x428fbf
cmp edi, 0x848
jae 0x428fa1
test esi, esi
je 0x429da9
mov dword [esp], edi
add edi, 0xffffffb8
je 0x429a5f
bsr ecx, edi
xor ecx, 0x1f
jmp 0x429a64
mov edi, 0x20
add edi, 0x20
mov ebx, esi
mov ebp, 1
xor edi, 0x3f
lea ecx, [edi - 1]
shr ebx, cl
lea edi, [ebx + edi*2 + 0x1a]
shl ebx, cl
mov ecx, 2
sub esi, ebx
shl esi, 8
or esi, edi
mov dword [edx], esi
mov edx, 0xfffffffe
mov ebx, dword [esp + 0x7c]
mov edi, dword [esp]
jmp 0x428fe0
test esi, esi
je 0x429db7
mov ecx, edi
shl ecx, 8
add ecx, 0xfff7b83f
cmp esi, 1
mov dword [edx], ecx
je 0x429dc5
mov dword [eax + 8], 0x40
mov ebp, 2
mov ecx, 3
mov edx, 0xfffffffd
nop word cs:[eax + eax]
nop
mov esi, dword [esp + 0x1c]
add edi, dword [esp + 0xc]
add ebp, dword [esp + 0x38]
add esi, edx
lea edx, [eax + ecx*4]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
cmp edi, dword [esp + 0x48]
mov dword [esp + 0x1c], esi
mov dword [eax], edx
mov dword [eax + 4], esi
mov dword [ecx], ebp
jae 0x429b2d
cmp dword [esp + 0x8c], 4
mov dword [esp], edi
mov dword [esp + 0x40], ebp
mov dword [esp + 0xc], edx
jne 0x4290e1
lea eax, [edi - 3]
mov ecx, ebx
sub ecx, eax
jb 0x429f23
cmp ecx, 7
jbe 0x429d3b
mov ecx, dword [esp + 0x78]
xor ebp, ebp
xor edi, edi
mov edx, dword [ecx + eax]
movzx ebx, byte [ecx + eax + 4]
movzx ecx, word [ecx + eax + 5]
shl ecx, 8
mov dword [esp + 0x10], edx
or ecx, ebx
shld ecx, edx, 8
imul edx, edx, 0x1e35a7bd
imul esi, ecx, 0x1e35a7bd
mov ecx, dword [esp + 0x14]
shrd ebp, esi, cl
shrd edi, edx, cl
shr esi, cl
shr edx, cl
test cl, 0x20
cmove esi, ebp
mov ebp, dword [esp + 0x84]
cmove edx, edi
cmp edx, ebp
jae 0x429c9f
mov edi, dword [esp + 0x80]
mov dword [edi + edx*4], eax
mov eax, dword [esp + 0x10]
xor edi, edi
shld ebx, eax, 0x18
imul eax, ebx, 0x1e35a7bd
shrd edi, eax, cl
shr eax, cl
test cl, 0x20
cmove eax, edi
cmp eax, ebp
jae 0x429cbb
mov edi, dword [esp]
mov ebx, dword [esp + 0x80]
lea ecx, [edi - 2]
mov dword [ebx + eax*4], ecx
lea eax, [edi - 1]
mov dword [ebx + edx*4], eax
mov eax, ebx
jmp 0x429387
cmp edi, 4
jbe 0x429ef1
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x18]
lea esi, [edi - 5]
sub eax, esi
jb 0x429f05
cmp eax, 7
mov dword [esp + 0x10], esi
jbe 0x429d3b
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x14]
movzx eax, byte [edx + edi + 1]
movzx ebp, byte [edx + edi + 2]
mov esi, dword [edx + edi - 5]
movzx edx, word [edx + edi - 1]
mov edi, 0
shl eax, 0x10
mov dword [esp + 4], ebp
shl ebp, 0x18
or eax, edx
or ebp, eax
mov eax, esi
mov edx, ebp
shl eax, cl
shld edx, esi, cl
test cl, 0x20
mov ecx, ebx
cmovne edx, eax
cmovne eax, edi
imul edi, edx, 0x1e35a7bd
mov edx, 0x1e35a7bd
mul edx
add edx, edi
mov edi, dword [esp + 0x84]
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
cmp edx, edi
jae 0x429cad
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x10]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x18]
mov eax, ebp
mov edx, ebp
shld eax, esi, 0x18
shr edx, 8
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edx, eax
cmovne eax, ecx
imul ecx, edx, 0x1e35a7bd
mov edx, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
cmp edx, edi
jae 0x429cc9
mov edi, dword [esp]
mov ecx, dword [esp + 0x80]
shrd esi, ebp, 0x10
shr ebp, 0x10
lea eax, [edi - 4]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x18]
mov eax, 0
mov edx, 0x1e35a7bd
shld ebp, esi, cl
shl esi, cl
test cl, 0x20
cmovne ebp, esi
cmovne esi, eax
mov eax, esi
imul ecx, ebp, 0x1e35a7bd
mov esi, dword [esp + 0x7c]
mul edx
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
mov eax, dword [esp + 0x84]
cmp edx, eax
jae 0x429cdc
mov ecx, dword [esp + 0x80]
lea eax, [edi - 3]
add edi, 0xfffffffe
mov dword [ecx + edx*4], eax
mov eax, esi
sub eax, edi
jb 0x429f15
mov ebx, dword [esp + 0x18]
cmp eax, 7
jbe 0x429d3b
mov esi, dword [esp + 0x78]
movzx eax, byte [esp + 4]
mov dword [esp + 0x5c], edi
movzx edx, byte [esi + edi + 5]
movzx ecx, byte [esi + edi + 6]
mov ebp, dword [esi + edi]
movzx edi, byte [esi + edi + 7]
mov esi, 0
shl edx, 8
shl ecx, 0x10
shl edi, 0x18
mov dword [esp + 0x44], ebp
or edx, eax
mov eax, ebp
or ecx, edx
or edi, ecx
mov ecx, ebx
shl eax, cl
test bl, 0x20
mov ecx, eax
cmovne ecx, esi
mov esi, edi
mov dword [esp + 0x10], ecx
mov ecx, ebx
shld esi, ebp, cl
test bl, 0x20
cmovne esi, eax
shld edx, ebp, 0x10
mov ebp, edi
mov dword [esp + 4], esi
mov esi, edx
shl esi, cl
test bl, 0x20
mov ecx, 0
mov eax, esi
cmovne eax, ecx
shr ebp, 0x10
mov ecx, ebx
shld ebp, edx, cl
test bl, 0x20
mov ebx, dword [esp + 0x14]
cmovne ebp, esi
imul ecx, ebp, 0x1e35a7bd
mov ebp, 0x1e35a7bd
mul ebp
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x10]
mov esi, edx
add esi, ecx
imul ecx, dword [esp + 4], 0x1e35a7bd
mul ebp
mov ebp, eax
mov eax, dword [esp + 0x38]
add edx, ecx
mov ecx, ebx
shrd ebp, edx, cl
shr edx, cl
shrd eax, esi, cl
shr esi, cl
test bl, 0x20
cmove edx, ebp
mov ebp, dword [esp + 0x84]
cmove esi, eax
cmp edx, ebp
jae 0x429cea
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x5c]
mov dword [ecx + edx*4], eax
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
mov edx, 0x1e35a7bd
shrd eax, edi, 8
shr edi, 8
shld edi, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edi, eax
cmovne eax, ecx
imul ecx, edi, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
cmp edx, ebp
jae 0x429cf8
mov edi, dword [esp]
mov ecx, dword [esp + 0x80]
lea eax, [edi - 1]
mov dword [ecx + edx*4], eax
mov eax, ecx
mov edx, dword [esp + 8]
cmp esi, ebp
jae 0x429c59
mov ebx, dword [eax + esi*4]
mov dword [eax + esi*4], edi
mov eax, edi
sub eax, ebx
cmp eax, 0x3fff0
ja 0x4299b2
nop dword [eax + eax]
mov ecx, eax
mov eax, dword [esp + 0x7c]
mov ebp, edx
mov edx, eax
sub edx, edi
jb 0x429de1
sub eax, ebx
mov dword [esp + 0x10], ecx
jb 0x429def
mov esi, dword [esp + 0x78]
mov dword [esp], edi
lea ecx, [esi + edi]
mov edi, dword [esp + 0x8c]
add esi, ebx
push edi
push eax
push esi
call fcn.00429f50
add esp, 0xc
test al, al
je 0x429a46
mov esi, dword [esp + 0x7c]
mov ebp, dword [esp + 0x3c]
add ebx, edi
mov edx, esi
sub edx, ebx
jb 0x429dff
mov eax, dword [esp]
lea ecx, [eax + edi]
sub esi, ecx
jb 0x429e0d
sub ebp, ecx
cmp ebp, edx
ja 0x429e1b
cmp ebp, esi
ja 0x429e27
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0x58]
mov edi, eax
add ebx, esi
add ecx, esi
lea esi, [edx + edi]
mov edi, 0xffffffff
nop
lea edx, [esi + edi]
cmp edx, 0xffffffff
je 0x429480
movzx eax, byte [ebx + edi + 1]
lea edx, [edi + 1]
cmp al, byte [ecx + edi + 1]
mov edi, edx
je 0x429440
add edx, dword [esp + 0x8c]
cmp edx, 0xa
jae 0x42948e
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x429bc8
lea eax, [edx + 0x26]
jmp 0x429530
mov edx, ebp
add edx, dword [esp + 0x8c]
cmp edx, 0xa
jb 0x429464
mov ebp, dword [esp + 0x1c]
cmp edx, 0x86
jae 0x4294c0
test ebp, ebp
je 0x429c4b
mov eax, edx
add eax, 0xfffffffa
je 0x4294f3
bsr esi, eax
xor esi, 0x1f
jmp 0x4294f8
cmp edx, 0x846
jae 0x4294df
test ebp, ebp
je 0x429c67
mov esi, edx
add esi, 0xffffffba
je 0x429514
bsr ecx, esi
xor ecx, 0x1f
jmp 0x429519
test ebp, ebp
je 0x429c75
mov eax, edx
shl eax, 8
add eax, 0xfff7ba3f
jmp 0x429530
mov esi, 0x20
add esi, 0x20
mov edi, eax
xor esi, 0x3f
lea ecx, [esi - 1]
shr edi, cl
lea esi, [edi + esi*2 + 0x2a]
shl edi, cl
sub eax, edi
shl eax, 8
or eax, esi
jmp 0x429530
mov ecx, 0x20
add ecx, 0x20
mov eax, 0xffffffff
xor ecx, 0x3f
lea edi, [ecx + 0x34]
shl eax, cl
add eax, esi
shl eax, 8
or eax, edi
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x98]
mov ecx, ebp
mov edi, dword [esp + 0x40]
dec ecx
mov dword [ebx], eax
lea eax, [ebx + 4]
mov dword [esi], eax
mov dword [esi + 4], ecx
mov esi, dword [esp + 0x9c]
lea eax, [edi + 1]
mov dword [esi], eax
je 0x429bac
mov eax, dword [esp + 0x10]
mov ebp, dword [esp]
mov cl, 0x1e
mov dword [esp + 0x40], edi
mov edi, ebx
mov ebx, 0
add eax, 3
add ebp, edx
bsr edx, eax
xor edx, 0x1f
sub cl, dl
movzx esi, cl
bt eax, esi
setb bl
add edx, edx
lea esi, [ebx + 2]
xor edx, 0x3e
shl esi, cl
mov ecx, dword [esp + 0x9c]
sub eax, esi
mov esi, dword [esp + 0x1c]
shl eax, 8
or edx, eax
lea eax, [edx + ebx + 0x4c]
mov edx, dword [esp + 0x98]
mov dword [edi + 4], eax
add edi, 8
add esi, 0xfffffffe
mov dword [edx], edi
mov dword [edx + 4], esi
mov edx, dword [esp + 0x40]
add edx, 2
cmp ebp, dword [esp + 0x48]
mov dword [ecx], edx
jae 0x429b20
cmp ebp, 4
jbe 0x429e35
cmp dword [esp + 0x8c], 4
mov ecx, dword [esp + 0x18]
mov ebx, edi
mov dword [esp], ebp
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], edx
mov dword [esp + 0xc], edi
jne 0x4296f0
mov edx, dword [esp + 0x7c]
lea eax, [ebp - 3]
mov ecx, edx
sub ecx, eax
jb 0x429e49
cmp ecx, 7
jbe 0x429d3b
mov ecx, dword [esp + 0x78]
xor edi, edi
movzx ebx, word [ecx + eax + 5]
movzx ebp, byte [ecx + eax + 4]
mov edx, dword [ecx + eax]
shl ebx, 8
mov dword [esp + 8], edx
or ebx, ebp
mov ecx, ebx
shld ecx, edx, 8
imul edx, edx, 0x1e35a7bd
imul esi, ecx, 0x1e35a7bd
mov ecx, dword [esp + 0x14]
shrd edi, esi, cl
shr esi, cl
mov dword [esp + 4], edi
xor edi, edi
shrd edi, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x84]
cmove esi, dword [esp + 4]
cmove edx, edi
cmp edx, ecx
jae 0x429bd6
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x14]
mov dword [edi + edx*4], eax
mov eax, dword [esp + 8]
xor edx, edx
shld ebp, eax, 0x18
imul eax, ebp, 0x1e35a7bd
mov ebp, dword [esp + 0x84]
shrd edx, eax, cl
shr eax, cl
test cl, 0x20
cmove eax, edx
cmp eax, ebp
jae 0x429bf7
mov ecx, dword [esp]
add ecx, 0xfffffffe
mov dword [edi + eax*4], ecx
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x14]
shld ebx, edi, 0x10
xor edi, edi
imul edx, ebx, 0x1e35a7bd
shrd edi, edx, cl
shr edx, cl
test cl, 0x20
cmove edx, edi
mov edi, ebp
cmp edx, ebp
jb 0x42997b
jmp 0x429c13
mov eax, dword [esp + 0x7c]
lea edi, [ebp - 5]
sub eax, edi
jb 0x429e55
cmp eax, 7
mov dword [esp + 8], edi
jbe 0x429d3b
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x14]
movzx eax, byte [edx + ebp + 1]
movzx edi, byte [edx + ebp + 2]
mov esi, dword [edx + ebp - 5]
movzx edx, word [edx + ebp - 1]
shl eax, 0x10
mov ebp, edi
mov dword [esp + 4], edi
mov edi, 0
or eax, edx
shl ebp, 0x18
or ebp, eax
mov eax, esi
mov edx, ebp
shl eax, cl
shld edx, esi, cl
test cl, 0x20
mov ecx, ebx
cmovne edx, eax
cmovne eax, edi
imul edi, edx, 0x1e35a7bd
mov edx, 0x1e35a7bd
mul edx
add edx, edi
mov edi, dword [esp + 0x84]
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
cmp edx, edi
jae 0x429be9
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 8]
mov dword [eax + edx*4], ecx
mov ecx, dword [esp + 0x18]
mov eax, ebp
mov edx, ebp
shld eax, esi, 0x18
shr edx, 8
shld edx, eax, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edx, eax
cmovne eax, ecx
imul ecx, edx, 0x1e35a7bd
mov edx, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
cmp edx, edi
jae 0x429c05
mov edi, dword [esp]
mov ecx, dword [esp + 0x80]
shrd esi, ebp, 0x10
shr ebp, 0x10
lea eax, [edi - 4]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x18]
mov eax, 0
mov edx, 0x1e35a7bd
shld ebp, esi, cl
shl esi, cl
test cl, 0x20
cmovne ebp, esi
cmovne esi, eax
mov eax, esi
imul ecx, ebp, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, ebx
shrd eax, edx, cl
shr edx, cl
test bl, 0x20
cmove edx, eax
mov eax, dword [esp + 0x84]
cmp edx, eax
jae 0x429c21
mov ecx, dword [esp + 0x80]
lea eax, [edi - 3]
lea esi, [edi - 2]
mov dword [ecx + edx*4], eax
mov edx, dword [esp + 0x7c]
mov eax, edx
sub eax, esi
jb 0x429e65
cmp eax, 7
jbe 0x429d3b
mov edi, dword [esp + 0x78]
movzx eax, byte [esp + 4]
movzx ecx, byte [edi + esi + 5]
movzx edx, byte [edi + esi + 6]
movzx ebx, byte [edi + esi + 7]
mov ebp, dword [edi + esi]
shl ecx, 8
shl edx, 0x10
shl ebx, 0x18
or ecx, eax
mov eax, ebp
or edx, ecx
mov ecx, dword [esp + 0x18]
or ebx, edx
mov edx, ebx
shld edx, ebp, cl
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne edx, eax
cmovne eax, ecx
imul ecx, edx, 0x1e35a7bd
mov edx, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, dword [esp + 0x14]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmove edx, eax
mov eax, dword [esp + 0x84]
cmp edx, eax
jae 0x429c2f
mov ecx, dword [esp + 0x18]
mov edi, ebx
mov eax, ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x44], ebp
shld edi, ebp, 0x18
shr eax, 8
mov ebp, 0
mov esi, edi
mov dword [esp + 8], eax
shl esi, cl
test cl, 0x20
mov eax, esi
cmovne eax, ebp
xor ebp, ebp
mov dword [esp + 4], eax
mov eax, dword [esp + 8]
shld eax, edi, cl
test cl, 0x20
mov edi, dword [esp + 0x44]
cmovne eax, esi
mov esi, dword [esp + 0x38]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
shrd edi, ebx, 0x10
mov dword [eax + edx*4], esi
mov edx, edi
shl edx, cl
test cl, 0x20
mov eax, edx
cmovne eax, ebp
shr ebx, 0x10
shld ebx, edi, cl
test cl, 0x20
mov edi, 0x1e35a7bd
cmovne ebx, edx
mul edi
mov ebp, eax
imul ecx, ebx, 0x1e35a7bd
mov esi, edx
mov eax, dword [esp + 4]
add esi, ecx
imul ecx, dword [esp + 8], 0x1e35a7bd
mul edi
mov edi, dword [esp + 0x84]
add edx, ecx
mov ecx, dword [esp + 0x14]
shrd ebp, esi, cl
shrd eax, edx, cl
shr esi, cl
shr edx, cl
test cl, 0x20
cmove edx, eax
cmove esi, ebp
cmp edx, edi
jae 0x429c3d
mov ebp, dword [esp]
mov ecx, dword [esp + 0x80]
cmp esi, edi
lea eax, [ebp - 1]
mov dword [ecx + edx*4], eax
jae 0x429bba
mov ebx, dword [ecx + esi*4]
mov dword [ecx + esi*4], ebp
mov esi, dword [esp + 0x10]
mov eax, ebp
mov edi, ebp
sub eax, ebx
mov edx, esi
cmp eax, 0x3fff1
jb 0x4293b0
jmp 0x4299b4
mov esi, edx
mov ebx, dword [esp + 0x7c]
lea ecx, [edi + 1]
cmp edi, ebx
jae 0x429ee5
mov eax, ebx
mov dword [esp + 0x10], esi
sub eax, ecx
cmp eax, 7
jbe 0x429d3b
mov eax, dword [esp + 0x78]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], edi
mov edx, dword [eax + ecx]
mov esi, dword [eax + ecx + 4]
mov ecx, dword [esp + 0x18]
mov eax, edx
shld esi, edx, cl
mov edx, 0x1e35a7bd
shl eax, cl
test cl, 0x20
mov ecx, 0
cmovne esi, eax
cmovne eax, ecx
imul ecx, esi, 0x1e35a7bd
mul edx
add edx, ecx
mov ecx, dword [esp + 0x14]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
mov ecx, dword [esp + 0x40]
cmove edx, eax
mov dword [esp], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0xc]
lea eax, [edi + 1]
cmp eax, edx
jbe 0x428b55
jmp 0x429aa1
mov edi, dword [esp]
mov esi, ebp
mov ebx, dword [esp + 0x7c]
lea ecx, [edi + 1]
cmp edi, ebx
jb 0x4299c3
jmp 0x429ee5
mov ecx, 0x20
add ecx, 0x20
mov ebp, 0xffffffff
xor ecx, 0x3f
lea ebx, [ecx + 0x34]
shl ebp, cl
add ebp, edi
shl ebp, 8
or ebp, ebx
cmp esi, 1
mov dword [edx], ebp
je 0x429dd3
mov ebp, 2
mov ecx, 3
mov edx, 0xfffffffd
mov dword [eax + 8], 0x40
jmp 0x428f98
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 4]
mov esi, eax
sub esi, ebp
jbe 0x429b18
mov edx, dword [esp + 0x98]
mov ecx, esi
mov dword [esp + 4], ebp
call fcn.0042a040
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x9c]
mov edx, dword [ecx + 4]
inc dword [eax]
mov edi, edx
sub edi, esi
jb 0x429e7d
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
ja 0x429e89
mov eax, dword [esp + 0x78]
mov ebp, dword [esp + 0x90]
mov ebx, dword [ebp]
add eax, dword [esp + 4]
push esi
push eax
push ebx
call fcn.007bd9b0
add esp, 0xc
mov eax, dword [esp + 0x94]
add ebx, esi
mov dword [ebp], ebx
mov dword [ebp + 4], edi
add dword [eax], esi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x3c]
jmp 0x429aa9
mov eax, dword [esp + 0x3c]
mov ebp, edi
jmp 0x429aa9
mov edx, dword [esp + 0x84]
mov ecx, eax
push 0x80a2cc
call fcn.007c1be0
mov ecx, 4
mov edx, 4
push 0x80a28c
call fcn.007c1be0
mov ecx, 4
mov edx, 4
push 0x80a29c
call fcn.007c1be0
mov edx, dword [esp + 0x84]
push 0x80a2ec
call fcn.007c1be0
mov ecx, 5
mov edx, 5
push 0x80a2ac
call fcn.007c1be0
mov ecx, 5
mov edx, 5
push 0x80a2bc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a1bc
call fcn.007c1be0
mov ecx, esi
mov edx, edi
push 0x80a4cc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a27c
call fcn.007c1be0
mov ecx, edx
mov edx, dword [esp + 0x84]
push 0x80a49c
call fcn.007c1be0
mov ecx, edx
mov edx, edi
push 0x80a42c
call fcn.007c1be0
mov ecx, eax
mov edx, ebp
push 0x80a4ac
call fcn.007c1be0
mov ecx, edx
mov edx, edi
push 0x80a43c
call fcn.007c1be0
mov ecx, edx
mov edx, edi
push 0x80a4bc
call fcn.007c1be0
mov ecx, edx
mov edx, eax
push 0x80a44c
call fcn.007c1be0
mov ecx, edx
mov edx, eax
push 0x80a45c
call fcn.007c1be0
mov ecx, edx
mov edx, edi
push 0x80a46c
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a26c
call fcn.007c1be0
mov ecx, esi
mov edx, ebp
push 0x80a40c
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a25c
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a24c
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a34c
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a23c
call fcn.007c1be0
mov ecx, edx
mov edx, ebp
push 0x80a35c
call fcn.007c1be0
mov ecx, edx
mov edx, edi
push 0x80a3bc
call fcn.007c1be0
mov ecx, eax
mov edx, ebp
push 0x80a36c
call fcn.007c1be0
mov ecx, edx
mov edx, dword [esp + 0x84]
push 0x80a3cc
call fcn.007c1be0
mov ecx, edx
mov edx, eax
push 0x80a3dc
call fcn.007c1be0
mov ecx, edx
mov edx, ebp
push 0x80a3ec
call fcn.007c1be0
mov ecx, edx
mov edx, ebp
push 0x80a3fc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a22c
call fcn.007c1be0
lea ecx, [esp + 0x20]
mov edx, 0x8f1900
jmp 0x429d44
xor ecx, ecx
xor edx, edx
push 0x80a20c
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a21c
call fcn.007c1be0
lea ecx, [esp + 0x20]
mov edx, 0x8f1910
mov dword [esp + 0x20], str.mid___len
mov dword [esp + 0x24], 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x28], 0x93d1f8
mov dword [esp + 0x2c], 0
call fcn.007c1b50
mov edx, ebx
push 0x80a31c
call fcn.007c1b80
mov ecx, edi
mov edx, ebx
push 0x80a30c
call fcn.007c1b80
mov ecx, ebp
mov edx, ebx
push 0x80a2fc
call fcn.007c1b80
mov edx, dword [esp + 0x7c]
mov ecx, ebp
push 0x80a2dc
call fcn.007c1b80
xor ecx, ecx
xor edx, edx
push 0x80a1ec
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a1cc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a1dc
call fcn.007c1be0
xor ecx, ecx
xor edx, edx
push 0x80a1fc
call fcn.007c1be0
mov ecx, edi
mov edx, eax
push 0x80a52c
call fcn.007c1b80
mov edx, dword [esp + 0x7c]
mov ecx, ebx
push 0x80a51c
call fcn.007c1b80
mov ecx, ebx
mov edx, esi
push 0x80a50c
call fcn.007c1b80
mov edx, dword [esp + 0x7c]
push 0x80a4fc
call fcn.007c1b80
mov ecx, ebp
push 0x7da72c
call fcn.007c1c40
mov ecx, ebp
mov edx, esi
push 0x7da73c
call fcn.007c1c40
mov ecx, str.assertion_failed:_ip_index___5
mov edx, 0x1f
push 0x80a41c
call fcn.007c1ca0
mov ecx, eax
push 0x80a4dc
call fcn.007c1b80
mov edx, dword [esp + 0x7c]
mov ecx, edi
push 0x80a48c
call fcn.007c1b80
mov ecx, esi
push 0x80a47c
call fcn.007c1b80
mov edx, ebx
push 0x80a59c
call fcn.007c1b80
mov ecx, esi
push 0x80a57c
call fcn.007c1c40
mov edx, ebx
push 0x80a58c
call fcn.007c1c40
mov ecx, ebp
mov edx, ebx
push 0x80a56c
call fcn.007c1b80
mov edx, ebx
push 0x80a55c
call fcn.007c1b80
mov ecx, eax
push 0x7da72c
call fcn.007c1c40
mov ecx, eax
mov edx, esi
push 0x7da73c
call fcn.007c1c40
mov ecx, esi
push 0x80a32c
call fcn.007c1c40
mov edx, dword [esp + 0xc]
mov ecx, ebp
push 0x80a33c
call fcn.007c1e60
mov edx, ebx
push 0x80a4ec
call fcn.007c1b80
mov ecx, str.assertion_failed:_ip_index___5
mov edx, 0x1f
push 0x80a3ac
call fcn.007c1ca0
mov edx, dword [esp + 0x7c]
mov ecx, esi
push 0x80a54c
call fcn.007c1b80
mov ecx, edi
mov edx, esi
push 0x80a53c
call fcn.007c1b80
mov ecx, eax
mov edx, ebx
push 0x80a37c
call fcn.007c1b80
int3