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

Disassembly:
sub esp, 0xe0
push ebx
mov ebx, dword [esp + 0xec]
lea ecx, [edx + eax]
mov eax, dword [esp + 0xf0]
push ebp
push esi
mov esi, dword [esp + 0xf0]
mov dword [esp + 0x70], ecx
lea ecx, [ebx + eax]
mov eax, dword [esi + 0x703c]
mov dword [esp + 0x7c], eax
mov eax, dword [esi + 0x7040]
mov dword [esp + 0x90], eax
mov eax, dword [esi + 0x7044]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + 0x7104]
push edi
mov edi, dword [esi + 0x70f4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x100]
add ecx, edi
mov ebp, ebx
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], edi
mov dword [esp + 0x88], ecx
test eax, eax
je 0x419587
cmp eax, 4
mov dword [esp + 0x90], eax
jl 0x418896
mov dword [esp + 0x90], 4
mov dword [esi + 0x708c], 1
mov eax, dword [esi + 0x7030]
mov ecx, dword [esi + 0x702c]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x80]
sub ebx, eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x7034]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x5c], ecx
sub eax, edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x68], ebx
call fcn.00416650
cmp eax, 0xffffff88
ja 0x418cdf
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov edi, dword [esi]
mov edx, dword [edi + 4]
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
or ecx, 0xffffffff
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
add ebx, edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], eax
call fcn.0044f6b0
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
add edi, 8
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0x40], edi
mov edi, dword [esi + 8]
mov edx, dword [edi + 4]
or ecx, 0xffffffff
sub ecx, edx
shr eax, 1
and ecx, 0x1f
shr eax, cl
add ebx, edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x44], eax
call fcn.0044f6b0
mov eax, dword [esp + 0x28]
mov esi, dword [esi + 4]
mov edx, dword [esi + 4]
add edi, 8
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x2c]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
or ecx, 0xffffffff
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
add edi, edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x4c], eax
call fcn.0044f6b0
add esi, 8
mov dword [esp + 0x50], esi
mov dword [esp + 0x14], 0
call fcn.0044f6b0
cmp eax, 2
jg 0x418cd2
lea ebx, [esp + 0xb0]
mov ecx, dword [esp + 0x90]
cmp dword [esp + 0x14], ecx
jge 0x418cef
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
movzx edx, byte [eax + ecx*8 + 2]
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x44]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x50]
movzx edi, byte [edx + esi*8 + 2]
mov ecx, dword [edx + esi*8 + 4]
mov edx, dword [esp + 0x48]
mov edx, dword [edx + ebp*8 + 4]
mov dword [esp + 0x74], edi
mov edi, dword [esp + 0x48]
movzx edi, byte [edi + ebp*8 + 2]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], ecx
test edi, edi
jne 0x418a26
mov edx, dword [esp + 0x28]
xor ebp, ebp
jmp 0x418ac3
cmp dword [esp + 0x104], 0
je 0x418a91
mov eax, edi
cmp edi, 0x18
jb 0x418a3c
mov eax, 0x18
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
and ecx, 0x1f
shl ebp, cl
mov esi, edi
sub esi, eax
mov eax, edi
sub eax, esi
add dword [esp + 0x2c], eax
mov ecx, eax
neg ecx
and ecx, 0x1f
shr ebp, cl
mov ecx, esi
shl ebp, cl
lea ecx, [esp + 0x28]
add ebp, edx
call fcn.0044f6b0
mov edx, dword [esp + 0x28]
test esi, esi
je 0x418abe
mov ecx, dword [esp + 0x2c]
add dword [esp + 0x2c], esi
and ecx, 0x1f
mov eax, edx
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add ebp, eax
jmp 0x418abe
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov ecx, eax
and ecx, 0x1f
shl ebp, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr ebp, cl
add eax, edi
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], eax
add ebp, edx
call fcn.0044f6b0
mov edx, dword [esp + 0x28]
cmp edi, 1
ja 0x418b08
xor eax, eax
cmp dword [esp + 0x10], eax
sete al
add ebp, eax
je 0x418b02
mov edi, dword [esp + 0x54]
lea esi, [edi - 1]
cmp ebp, 3
je 0x418ae0
mov esi, dword [esp + ebp*4 + 0x54]
xor ecx, ecx
test esi, esi
sete cl
add esi, ecx
cmp ebp, 1
je 0x418af6
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edi
mov ebp, esi
mov dword [esp + 0x54], esi
jmp 0x418b1c
mov ebp, dword [esp + 0x54]
jmp 0x418b1c
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebp
mov edi, dword [esp + 0x74]
test edi, edi
jbe 0x418b3e
mov ecx, dword [esp + 0x2c]
and ecx, 0x1f
mov eax, edx
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
add dword [esp + 0x2c], edi
jmp 0x418b40
xor eax, eax
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x20]
add eax, ecx
add edi, esi
mov dword [esp + 0xa4], eax
cmp edi, 0x14
jb 0x418b65
lea ecx, [esp + 0x28]
call fcn.0044f6b0
mov edx, dword [esp + 0x28]
test esi, esi
jbe 0x418b83
mov ecx, dword [esp + 0x2c]
and ecx, 0x1f
shl edx, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr edx, cl
add dword [esp + 0x2c], esi
mov eax, edx
jmp 0x418b85
xor eax, eax
mov edx, dword [esp + 0x10]
lea esi, [eax + edx]
lea ecx, [esp + 0x28]
mov dword [esp + 0xa0], esi
call fcn.0044f6b0
mov eax, dword [esp + 0x68]
lea ecx, [esi + eax]
mov eax, dword [esp + 0x64]
cmp ebp, ecx
ja 0x418baf
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0xa4]
mov edi, dword [esp + 0x2c]
add edx, ecx
sub eax, ebp
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x40]
mov esi, dword [eax + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x68], edx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x28]
mov ecx, edi
and ecx, 0x1f
mov edx, eax
shl edx, cl
or ecx, 0xffffffff
mov dword [esp + 0x98], esi
shr esi, 0x18
sub ecx, esi
and ecx, 0x1f
shr edx, 1
shr edx, cl
movzx ecx, word [esp + 0x98]
add ecx, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x50]
add edi, esi
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + edx*8 + 4]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0x78], edx
or ecx, 0xffffffff
mov edx, esi
shr edx, 0x18
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
movzx ecx, si
add ecx, eax
add edi, edx
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edi
call fcn.0044f6b0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov edx, dword [eax + ecx*8 + 4]
mov esi, dword [eax + ecx*8]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
inc dword [esp + 0x14]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0x78], edx
or ecx, 0xffffffff
mov edx, esi
shr edx, 0x18
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
movzx ecx, si
add edi, edx
mov edx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [ebx], edx
mov dword [ebx + 4], eax
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xac]
mov dword [ebx + 8], ebp
mov dword [ebx + 0xc], ecx
mov dword [esp + 0x2c], edi
add ebx, 0x10
lea ecx, [esp + 0x28]
call fcn.0044f6b0
cmp eax, 2
jle 0x4189bf
mov esi, dword [esp + 0x14]
cmp esi, dword [esp + 0x90]
jge 0x418cf3
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0x28]
call fcn.0044f6b0
cmp eax, 2
jg 0x4192a8
jmp 0x418d10
mov eax, dword [esp + 0x100]
cmp esi, eax
jge 0x4192bb
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
movzx edx, byte [eax + ecx*8 + 2]
mov esi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x44]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x50]
movzx edi, byte [edx + esi*8 + 2]
mov ecx, dword [edx + esi*8 + 4]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x48]
movzx ebx, byte [edi + ebp*8 + 2]
mov ebp, dword [edi + ebp*8 + 4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x74], ecx
test ebx, ebx
jne 0x418d71
mov edx, dword [esp + 0x28]
xor edi, edi
jmp 0x418e2d
cmp dword [esp + 0x104], 0
je 0x418df4
mov eax, ebx
cmp ebx, 0x18
jb 0x418d87
mov eax, 0x18
mov edi, dword [esp + 0x2c]
mov ecx, edi
and ecx, 0x1f
mov esi, ebx
sub esi, eax
mov eax, dword [esp + 0x28]
shl eax, cl
mov edx, ebx
sub edx, esi
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, esi
add edi, edx
mov dword [esp + 0x2c], edi
shl eax, cl
lea ecx, [esp + 0x28]
add eax, ebp
mov edi, eax
mov dword [esp + 0x8c], edi
call fcn.0044f6b0
mov edx, dword [esp + 0x28]
test esi, esi
je 0x418e28
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
and ecx, 0x1f
mov eax, edx
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add ebp, esi
mov dword [esp + 0x2c], ebp
add edi, eax
mov dword [esp + 0x8c], edi
jmp 0x418e28
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
mov ecx, eax
and ecx, 0x1f
shl edi, cl
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr edi, cl
add eax, ebx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], eax
add edi, ebp
mov dword [esp + 0x8c], edi
call fcn.0044f6b0
mov edx, dword [esp + 0x28]
cmp ebx, 1
ja 0x418e80
xor eax, eax
cmp dword [esp + 0x20], eax
sete al
add edi, eax
je 0x418e73
mov esi, dword [esp + 0x54]
lea eax, [esi - 1]
cmp edi, 3
je 0x418e4a
mov eax, dword [esp + edi*4 + 0x54]
xor ecx, ecx
test eax, eax
sete cl
add eax, ecx
cmp edi, 1
je 0x418e60
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x5c], ecx
mov edi, eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x8c], edi
mov dword [esp + 0x54], eax
jmp 0x418e94
mov edi, dword [esp + 0x54]
mov dword [esp + 0x8c], edi
jmp 0x418e94
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x54], edi
mov esi, dword [esp + 0x10]
test esi, esi
jbe 0x418eba
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
mov eax, edx
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add ebx, esi
mov dword [esp + 0x2c], ebx
jmp 0x418ebc
xor eax, eax
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x7c]
lea esi, [eax + ecx]
mov eax, dword [esp + 0x10]
add eax, ebx
mov dword [esp + 0xa4], esi
cmp eax, 0x14
jb 0x418ee6
lea ecx, [esp + 0x28]
call fcn.0044f6b0
mov edx, dword [esp + 0x28]
test ebx, ebx
jbe 0x418f08
mov ebp, dword [esp + 0x2c]
mov ecx, ebp
and ecx, 0x1f
shl edx, cl
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr edx, cl
add ebp, ebx
mov dword [esp + 0x2c], ebp
mov eax, edx
jmp 0x418f0a
xor eax, eax
mov ecx, dword [esp + 0x20]
lea ebx, [eax + ecx]
lea ecx, [esp + 0x28]
mov dword [esp + 0xa0], ebx
call fcn.0044f6b0
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
lea ecx, [ebx + edx]
cmp edi, ecx
ja 0x418f34
mov eax, dword [esp + 0x60]
add esi, ecx
sub eax, edi
mov edi, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x40]
mov ebx, dword [eax + ecx*8]
mov eax, dword [eax + ecx*8 + 4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x28]
mov ecx, edi
and ecx, 0x1f
mov edx, eax
shl edx, cl
or ecx, 0xffffffff
mov dword [esp + 0x68], esi
mov esi, ebx
shr esi, 0x18
sub ecx, esi
and ecx, 0x1f
shr edx, 1
shr edx, cl
movzx ecx, bx
add ecx, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x50]
add edi, esi
mov esi, dword [ecx + edx*8]
mov edx, dword [ecx + edx*8 + 4]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0x9c], edx
or ecx, 0xffffffff
mov edx, esi
shr edx, 0x18
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
movzx ecx, si
add ecx, eax
add edi, edx
mov dword [esp + 0x4c], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edi
call fcn.0044f6b0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov esi, dword [eax + ecx*8]
mov edx, dword [eax + ecx*8 + 4]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov dword [esp + 0x9c], edx
mov edx, esi
or ecx, 0xffffffff
shr edx, 0x18
sub ecx, edx
and ecx, 0x1f
shr eax, 1
shr eax, cl
movzx ecx, si
mov esi, dword [esp + 0x14]
add edi, edx
mov edx, dword [esp + 0x18]
add ecx, eax
and esi, 3
shl esi, 4
mov eax, dword [esp + esi + 0xb0]
lea esi, [esp + esi + 0xb0]
lea ebx, [eax + edx]
mov dword [esp + 0x2c], edi
mov edi, dword [esi + 4]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x7c], ebx
lea ebx, [edi + eax]
add edx, ebx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x24]
lea ebp, [ebx - 8]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x1c]
add ebp, eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x74], ebp
cmp edx, ebx
ja 0x419595
mov edx, ebp
cmp edx, dword [esp + 0x88]
ja 0x418cdf
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x7c], edx
jbe 0x4190d4
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x8c]
push ecx
push edx
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x2c]
push ecx
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esi + 8]
mov ecx, edi
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x3c]
mov ecx, ebx
call fcn.00417fd0
add esp, 0x24
jmp 0x419259
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
mov ebp, dword [esp + 0x18]
mov dword [ebp], edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 4]
mov dword [ebp + 4], edx
cmp eax, 8
jbe 0x419114
lea edx, [ebp + 8]
mov ebx, edx
sub ebx, ebp
add ebx, dword [esp + 0x1c]
lea eax, [edx + eax - 8]
nop
mov ebp, dword [ebx]
mov dword [edx], ebp
mov ebp, dword [ebx + 4]
mov dword [edx + 4], ebp
add edx, 8
add ebx, 8
cmp edx, eax
jb 0x419100
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ebx, eax
sub ebx, dword [esp + 0x80]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 8]
cmp edx, ebx
jbe 0x4191a0
mov ebp, eax
sub eax, dword [esp + 0x94]
cmp edx, eax
ja 0x418cdf
mov ebx, dword [esp + 0x84]
lea edx, [ecx + edi]
cmp edx, ebx
ja 0x41915f
push edi
push ecx
push ebp
call fcn.005d69b0
add esp, 0xc
jmp 0x419255
sub ebx, ecx
push ebx
push ecx
push ebp
call fcn.005d69b0
mov ecx, dword [esp + 0x8c]
lea eax, [ebx + ebp]
mov ebp, dword [esp + 0x2c]
add esp, 0xc
sub edi, ebx
cmp eax, ebp
ja 0x419185
cmp edi, 3
jae 0x4191a4
test edi, edi
jbe 0x419255
sub ecx, eax
nop
mov dl, byte [ecx + eax]
mov byte [eax], dl
inc eax
sub edi, 1
jne 0x419190
jmp 0x419255
mov ebp, dword [esp + 0x20]
mov edx, dword [esi + 8]
cmp edx, 8
jae 0x4191e0
mov ebx, dword [edx*4 + str._b_b_b_a_b_t_n_v]
mov dword [esp + 0x74], ebx
movzx ebx, byte [ecx]
mov byte [eax], bl
movzx ebx, byte [ecx + 1]
mov byte [eax + 1], bl
movzx ebx, byte [ecx + 2]
mov byte [eax + 2], bl
movzx ebx, byte [ecx + 3]
mov byte [eax + 3], bl
add ecx, dword [edx*4 + 0x6aa0dc]
mov edx, dword [ecx]
sub ecx, dword [esp + 0x74]
jmp 0x4191e7
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x24]
lea ebx, [edx - 0xd]
mov edx, dword [esp + 0x98]
add eax, 8
add ecx, 8
cmp edx, ebx
jbe 0x41923c
cmp eax, ebp
jae 0x419227
sub ecx, eax
jmp 0x419210
mov edi, dword [ecx + eax]
mov dword [eax], edi
mov edi, dword [ecx + eax + 4]
mov dword [eax + 4], edi
add eax, 8
cmp eax, ebp
jb 0x419210
add ecx, ebp
mov eax, ebp
cmp eax, edx
jae 0x419255
jmp 0x419230
mov bl, byte [ecx]
mov byte [eax], bl
inc eax
inc ecx
cmp eax, edx
jb 0x419230
jmp 0x419255
lea edi, [edi + eax - 8]
sub ecx, eax
mov edx, dword [ecx + eax]
mov dword [eax], edx
mov edx, dword [ecx + eax + 4]
mov dword [eax + 4], edx
add eax, 8
cmp eax, edi
jb 0x419242
mov eax, dword [esp + 0x10]
cmp eax, 0xffffff88
ja 0x4195b6
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
add dword [esp + 0x18], eax
inc dword [esp + 0x14]
mov dword [esi], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esi + 4], edx
mov edx, dword [esp + 0xac]
mov dword [esi + 8], ecx
lea ecx, [esp + 0x28]
mov dword [esi + 0xc], edx
call fcn.0044f6b0
cmp eax, 2
jg 0x4192a8
mov esi, dword [esp + 0x14]
jmp 0x418d10
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x100]
cmp esi, eax
jl 0x418cdf
sub esi, dword [esp + 0x90]
cmp esi, eax
mov dword [esp + 0x14], esi
jge 0x41954c
mov edi, edi
mov ebx, dword [esp + 0x18]
and esi, 3
shl esi, 4
mov edx, dword [esp + esi + 0xb0]
mov ebp, dword [esp + esi + 0xb4]
mov ecx, dword [esp + esi + 0xb8]
lea eax, [esp + esi + 0xb0]
lea esi, [edx + ebp]
lea edi, [edx + ebx]
mov dword [esp + 0x10], esi
add esi, ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xa8], ecx
mov ecx, dword [eax + 0xc]
add ebx, edx
mov dword [esp + 0xac], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x74], ebx
cmp esi, dword [esp + 0x24]
ja 0x419595
mov esi, ebx
cmp esi, dword [esp + 0x88]
ja 0x418cdf
mov esi, dword [esp + 0x24]
lea ebx, [esi - 8]
cmp edi, ebx
jbe 0x419397
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x90]
push edx
push ecx
lea edx, [esp + 0x2c]
push edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, ebp
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x3c]
mov ecx, esi
call fcn.00417fd0
add esp, 0x24
jmp 0x419529
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebx]
mov esi, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [ebx + 4]
mov dword [esi + 4], eax
cmp edx, 8
jbe 0x4193e4
lea eax, [esi + 8]
lea edx, [eax + edx - 8]
mov dword [esp + 0x98], edx
mov edx, eax
sub edx, esi
mov esi, dword [esp + 0x98]
add edx, ebx
lea esp, [esp]
mov ebx, dword [edx]
mov dword [eax], ebx
mov ebx, dword [edx + 4]
mov dword [eax + 4], ebx
add eax, 8
add edx, 8
cmp eax, esi
jb 0x4193d0
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x80]
mov esi, dword [esp + 0xa8]
mov dword [esp + 0x1c], edx
mov edx, edi
sub edx, ebx
mov eax, edi
cmp esi, edx
jbe 0x41947d
sub eax, dword [esp + 0x94]
cmp esi, eax
ja 0x418cdf
mov eax, dword [esp + 0xac]
mov esi, dword [esp + 0x84]
lea ecx, [eax + ebp]
cmp ecx, esi
ja 0x419438
push ebp
push eax
push edi
call fcn.005d69b0
add esp, 0xc
jmp 0x419525
sub esi, eax
push esi
push eax
push edi
call fcn.005d69b0
mov edx, dword [esp + 0x30]
lea eax, [esi + edi]
add edx, 0xfffffff8
add esp, 0xc
sub ebp, esi
mov ecx, ebx
cmp eax, edx
ja 0x41945c
cmp ebp, 3
jae 0x419476
test ebp, ebp
jbe 0x419525
sub ecx, eax
mov dl, byte [eax + ecx]
mov byte [eax], dl
inc eax
sub ebp, 1
jne 0x419466
jmp 0x419525
mov esi, dword [esp + 0xa8]
cmp esi, 8
jae 0x4194b0
movzx edx, byte [ecx]
mov edi, dword [esi*4 + str._b_b_b_a_b_t_n_v]
mov byte [eax], dl
movzx edx, byte [ecx + 1]
mov byte [eax + 1], dl
movzx edx, byte [ecx + 2]
mov byte [eax + 2], dl
movzx edx, byte [ecx + 3]
mov byte [eax + 3], dl
add ecx, dword [esi*4 + 0x6aa0dc]
mov edx, dword [ecx]
sub ecx, edi
jmp 0x4194b7
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov esi, dword [esp + 0x20]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x24]
lea edi, [edx - 0xd]
add eax, 8
add ecx, 8
cmp esi, edi
jbe 0x41950c
add edx, 0xfffffff8
cmp eax, edx
jae 0x4194f7
sub ecx, eax
jmp 0x4194e0
mov edi, dword [eax + ecx]
mov dword [eax], edi
mov edi, dword [eax + ecx + 4]
mov dword [eax + 4], edi
add eax, 8
cmp eax, edx
jb 0x4194e0
add ecx, edx
mov eax, edx
cmp eax, esi
jae 0x419525
jmp 0x419500
mov dl, byte [ecx]
mov byte [eax], dl
inc eax
inc ecx
cmp eax, esi
jb 0x419500
jmp 0x419525
lea ebp, [eax + ebp - 8]
sub ecx, eax
mov edx, dword [eax + ecx]
mov dword [eax], edx
mov edx, dword [eax + ecx + 4]
mov dword [eax + 4], edx
add eax, 8
cmp eax, ebp
jb 0x419512
mov eax, dword [esp + 0x10]
cmp eax, 0xffffff88
ja 0x4195b6
mov esi, dword [esp + 0x14]
add dword [esp + 0x18], eax
inc esi
cmp esi, dword [esp + 0x100]
mov dword [esp + 0x14], esi
jl 0x4192d0
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0xf8]
mov edi, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [eax + 0x702c], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x7034], ecx
mov ecx, dword [esp + 0x88]
mov dword [eax + 0x7030], edx
mov eax, dword [esp + 0x24]
sub ecx, edi
mov esi, ecx
sub eax, ebp
cmp esi, eax
jbe 0x4195a5
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret
push esi
push edi
push ebp
call fcn.005d4f90
sub esi, ebx
add esp, 0xc
add esi, ebp
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe0
ret