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

Disassembly:
sub esp, 0xb8
push ebx
mov ebx, dword [esp + 0xc0]
mov eax, dword [ebx + 0x34]
push ebp
push esi
push edi
xor edi, edi
cmp dword [esp + 0xd0], edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x38], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], eax
jne 0x41c3eb
mov eax, 7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
movzx ecx, word [ebx + 0x10]
movzx eax, byte [ebx + 1]
lea esi, [eax + ecx]
cmp esi, 2
jge 0x41c404
lea edx, [esi + 1]
mov dword [esp + 0x34], edx
jmp 0x41c41f
cmp edx, edi
mov dword [esp + 0x34], 3
je 0x41c41a
cmp edx, esi
lea edi, [esi - 2]
je 0x41c41a
lea edi, [edx - 1]
mov esi, 2
mov edx, edi
sub edx, eax
lea eax, [edx + esi]
cmp eax, ecx
mov dword [esp + 0x14], edi
jne 0x41c43f
movzx eax, byte [ebx + 5]
mov ecx, dword [ebx + 0x38]
lea eax, [eax + ecx + 8]
mov dword [esp + 0x50], eax
jmp 0x41c45b
mov edx, dword [ebx + 0x40]
lea eax, [edx + eax*2]
movzx edx, word [ebx + 0x12]
xor ecx, ecx
mov ch, byte [eax]
mov cl, byte [eax + 1]
and ecx, edx
add ecx, dword [ebx + 0x38]
mov eax, ecx
mov dword [esp + 0x50], ecx
movzx edx, byte [eax + 2]
xor ecx, ecx
mov ch, byte [eax]
lea ebp, [esp + esi*4 + 0x6c]
push ebp
mov cl, byte [eax + 1]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, edx
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x1c]
push eax
push ecx
mov dword [esp + 0x2c], eax
call fcn.00417120
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x41c602
lea eax, [edi + esi]
jmp 0x41c4a4
mov eax, dword [esp + 0x44]
mov ebp, dword [ebp]
movzx ecx, byte [ebp + 1]
add ecx, dword [esp + 0x30]
movzx edx, word [ebp + 0x10]
lea edx, [ecx + edx + 1]
mov ecx, esi
sub eax, 1
sub esi, 1
test ecx, ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x44], eax
je 0x41c61e
movzx edx, word [ebx + 0x14]
cmp eax, edx
jne 0x41c51e
cmp byte [ebx + 1], 0
je 0x41c51e
mov eax, dword [ebx + 0x20]
movzx ecx, byte [eax + 1]
mov ch, byte [eax]
movzx edx, byte [eax + 2]
mov dword [esp + esi*4 + 0x80], eax
push eax
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 3]
shl ecx, 8
or ecx, edx
mov eax, ebx
mov dword [esp + 0x24], ecx
call fcn.00416660
movzx eax, ax
add esp, 4
mov dword [esp + esi*4 + 0x54], eax
mov byte [ebx + 1], 0
jmp 0x41c5df
movzx ecx, byte [ebx + 1]
mov eax, dword [ebx + 0x40]
mov edx, edi
sub edx, ecx
add edx, esi
movzx ecx, byte [eax + edx*2 + 1]
mov ch, byte [eax + edx*2]
lea eax, [eax + edx*2]
movzx edx, word [ebx + 0x12]
mov eax, dword [ebx + 0x38]
and ecx, edx
movzx edx, byte [eax + ecx + 2]
add eax, ecx
xor ecx, ecx
mov ch, byte [eax]
mov dword [esp + esi*4 + 0x80], eax
push eax
mov cl, byte [eax + 1]
shl ecx, 8
or ecx, edx
movzx edx, byte [eax + 3]
shl ecx, 8
or ecx, edx
mov eax, ebx
mov dword [esp + 0x24], ecx
call fcn.00416660
movzx ebp, ax
mov eax, dword [esp + 0x1c]
add esp, 4
test byte [eax + 0x16], 4
mov dword [esp + esi*4 + 0x54], ebp
je 0x41c5c7
mov edi, dword [esp + esi*4 + 0x80]
mov edx, dword [esp + 0x18]
mov eax, edi
sub eax, dword [ebx + 0x38]
lea ecx, [eax + ebp]
cmp ecx, dword [edx + 0x24]
jg 0x41cf20
mov ecx, dword [esp + 0xd0]
push ebp
add eax, ecx
push edi
push eax
call sub.MSVCR80.dll_memcpy
sub edi, dword [ebx + 0x38]
add esp, 0xc
add edi, dword [esp + 0xd0]
mov dword [esp + esi*4 + 0x80], edi
mov edi, dword [esp + 0x14]
movzx eax, byte [ebx + 1]
lea edx, [esp + 0x10]
push edx
mov edx, edi
sub edx, eax
push ebp
add edx, esi
call fcn.0041be00
add esp, 8
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
lea ebp, [esp + esi*4 + 0x6c]
push ebp
push ecx
push edx
call fcn.00417120
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
je 0x41c4a0
lea eax, [esi*4 + 4]
push eax
lea ecx, [esp + 0x70]
push 0
push ecx
call sub.MSVCR80.dll_memset
add esp, 0xc
jmp 0x41cf58
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x20]
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
lea ecx, [eax + 0x50]
mov dword [esp + 0x4c], ecx
imul ecx, edi
add esi, 3
and esi, 0xfffffffc
lea edx, [esi + esi*2]
add ecx, eax
lea eax, [ecx + edx*2]
call fcn.00406a10
test eax, eax
mov dword [esp + 0x28], eax
jne 0x41c65f
mov dword [esp + 0x10], 7
jmp 0x41cf58
lea eax, [eax + esi*4]
mov dword [esp + 0x3c], eax
lea eax, [eax + esi*2]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x6c]
movzx cx, byte [eax + 3]
movzx eax, byte [eax + 4]
add cx, cx
add cx, cx
test edi, edi
movzx edx, cx
mov dword [esp + 0x30], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x1c], 0
jle 0x41c847
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x20]
add ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x44]
lea ebx, [ecx + eax]
mov eax, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x9c], ebx
mov eax, dword [esp + eax*4 + 0x6c]
mov esi, eax
mov ecx, 0x13
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
lea ecx, [ebx + 0x4c]
mov dword [ebx + 0x38], ecx
mov edx, dword [edx + 0x20]
mov eax, dword [eax + 0x38]
push edx
push eax
push ecx
call sub.MSVCR80.dll_memcpy
mov al, byte [ebx + 1]
movzx ebp, word [ebx + 0x10]
movzx ecx, al
add esp, 0xc
add ebp, ecx
test al, al
jbe 0x41c737
xor esi, esi
test ebp, ebp
jle 0x41c798
mov eax, esi
mov edi, ebx
call fcn.004164c0
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [edx + edi*4], eax
push eax
mov eax, ebx
call fcn.00416660
mov ecx, dword [esp + 0x40]
mov word [ecx + edi*2], ax
add edi, 1
add esi, 1
add esp, 4
cmp esi, ebp
mov dword [esp + 0x24], edi
jl 0x41c700
jmp 0x41c798
test ebp, ebp
mov edi, dword [ebx + 0x38]
movzx eax, word [ebx + 0x12]
movzx ecx, word [ebx + 0xc]
jle 0x41c798
movzx edx, ax
movzx esi, cx
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x68], edx
add esi, edi
lea ebx, [ebx]
mov ecx, dword [esp + 0x28]
xor eax, eax
mov ah, byte [esi]
mov al, byte [esi + 1]
and eax, dword [esp + 0x68]
add eax, edi
mov dword [ecx + ebp*4], eax
push eax
mov eax, ebx
call fcn.00416660
mov edx, dword [esp + 0x40]
mov word [edx + ebp*2], ax
add esp, 4
add ebp, 1
add esi, 2
sub dword [esp + 0x7c], 1
jne 0x41c760
mov dword [esp + 0x24], ebp
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
add eax, 0xffffffff
cmp ecx, eax
jge 0x41c82e
cmp dword [esp + 0x40], 0
jne 0x41c82e
movzx eax, word [esp + ecx*4 + 0x54]
mov edi, dword [esp + 0x3c]
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x44]
mov word [edi + esi*2], ax
movzx eax, ax
add ebp, edx
push eax
add edx, eax
mov eax, dword [esp + ecx*4 + 0x84]
push eax
push ebp
mov dword [esp + 0x38], edx
call sub.MSVCR80.dll_memcpy
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
movzx edx, ax
add edx, ebp
mov dword [ecx + esi*4], edx
sub word [edi + esi*2], ax
movzx eax, word [edi + esi*2]
add esp, 0xc
cmp byte [ebx + 3], 0
jne 0x41c817
mov eax, dword [ebx + 0x38]
mov ecx, dword [ecx + esi*4]
mov edx, dword [eax + 8]
mov dword [ecx], edx
jmp 0x41c823
cmp ax, 4
jae 0x41c823
mov word [edi + esi*2], 4
mov ecx, dword [esp + 0x1c]
add esi, 1
mov dword [esp + 0x24], esi
mov eax, dword [esp + 0x4c]
add dword [esp + 0x78], eax
add ecx, 1
cmp ecx, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
jl 0x41c6a3
movzx eax, word [esp + 0x30]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 0x24]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x3c]
lea esi, [edx + eax - 0xc]
xor ecx, ecx
xor ebp, ebp
xor eax, eax
test ebx, ebx
jle 0x41c8a8
lea esp, [esp]
movzx edx, word [edi + ecx*2]
lea eax, [eax + edx + 2]
cmp eax, esi
jle 0x41c8a1
sub eax, edx
cmp dword [esp + 0x40], 0
mov dword [esp + ebp*4 + 0x54], eax
mov dword [esp + ebp*4 + 0x88], ecx
je 0x41c893
sub ecx, 1
add ebp, 1
xor eax, eax
cmp ebp, 4
jg 0x41c92c
add ecx, 1
cmp ecx, ebx
jl 0x41c870
mov dword [esp + ebp*4 + 0x88], ebx
add ebp, 1
mov dword [esp + ebp*4 + 0x50], eax
lea ebx, [ebp - 1]
test ebx, ebx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x1c], ebx
jle 0x41c96d
mov eax, dword [esp + ebx*4 + 0x84]
mov edx, dword [esp + ebx*4 + 0x54]
mov esi, dword [esp + ebx*4 + 0x50]
sub eax, 1
mov ecx, eax
sub ecx, dword [esp + 0x40]
add ecx, 1
test edx, edx
je 0x41c903
movzx ebx, word [edi + eax*2]
mov ebp, esi
sub ebp, ebx
movzx ebx, word [edi + ecx*2]
lea ebx, [ebx + edx + 2]
sub ebp, 2
cmp ebx, ebp
mov ebx, dword [esp + 0x1c]
jg 0x41c952
movzx ecx, word [edi + ecx*2]
movzx eax, word [edi + eax*2]
add dword [esp + ebx*4 + 0x84], 0xffffffff
lea edx, [edx + ecx + 2]
mov ecx, 0xfffffffe
sub ecx, eax
mov eax, dword [esp + ebx*4 + 0x84]
add esi, ecx
add eax, 0xffffffff
jmp 0x41c8db
push 0x4775ec
push 0xd8f8
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00408500
add esp, 0x10
mov dword [esp + 0x10], 0xb
jmp 0x41cf58
mov dword [esp + ebx*4 + 0x54], edx
mov dword [esp + ebx*4 + 0x50], esi
sub ebx, 1
test ebx, ebx
mov dword [esp + 0x1c], ebx
jg 0x41c8c9
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x6c]
cmp dword [eax + 0x48], 1
ja 0x41c983
push 0x4775ec
push 0xd934
jmp 0x41c936
mov edx, dword [eax + 0x38]
movzx eax, byte [edx]
xor esi, esi
test ebp, ebp
mov dword [esp + 0x44], eax
jle 0x41ca3e
cmp esi, dword [esp + 0x34]
jge 0x41c9ca
mov eax, dword [esp + esi*4 + 0x6c]
mov ecx, dword [eax + 0x44]
push ecx
mov dword [esp + esi*4 + 0x58], eax
mov dword [esp + 0x30], eax
mov dword [esp + esi*4 + 0x70], 0
call fcn.00412320
add dword [esp + 0x3c], 1
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jmp 0x41ca2d
mov edx, dword [esp + 0x20]
push 0
push edx
mov edx, dword [esp + 0x20]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x38]
push ecx
push edx
call fcn.0041ace0
add esp, 0x14
test eax, eax
mov dword [esp + 0x10], eax
jne 0x41cf58
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x38], 1
cmp byte [ecx + 0x11], 0
mov dword [esp + esi*4 + 0x54], eax
je 0x41ca33
mov eax, dword [eax + 0x48]
lea edx, [esp + 0x10]
push edx
mov edx, dword [esp + 0xd0]
mov edx, dword [edx + 0x48]
push edx
push 5
call fcn.00416170
add esp, 0xc
cmp dword [esp + 0x10], 0
jne 0x41cf58
add esi, 1
cmp esi, ebp
jl 0x41c997
cmp esi, dword [esp + 0x34]
jge 0x41ca9e
jmp 0x41ca50
cmp dword [esp + 0x10], 0
mov edi, dword [esp + esi*4 + 0x6c]
jne 0x41cf58
mov eax, dword [edi + 0x48]
mov ecx, dword [edi + 0x34]
push eax
push ecx
mov eax, edi
call fcn.0041b5c0
add esp, 8
test eax, eax
mov dword [esp + 0x10], eax
jne 0x41cf58
test edi, edi
je 0x41ca8d
mov edx, dword [edi + 0x44]
push edx
call fcn.00411f60
add esp, 4
mov dword [esp + esi*4 + 0x6c], 0
add esi, 1
cmp esi, dword [esp + 0x34]
jl 0x41ca50
lea eax, [ebp - 1]
xor ecx, ecx
test eax, eax
jle 0x41cb07
jmp 0x41cab0
lea eax, [esp + ecx*4 + 0x54]
mov dword [esp + 0x68], eax
mov eax, dword [eax]
mov esi, dword [eax + 0x48]
lea ebx, [ecx + 1]
cmp ebx, ebp
mov dword [esp + 0x2c], eax
mov edi, ecx
mov eax, ebx
jge 0x41cafe
lea esp, [esp]
mov edx, dword [esp + eax*4 + 0x54]
mov edx, dword [edx + 0x48]
cmp edx, esi
jae 0x41cadf
mov edi, eax
mov esi, edx
add eax, 1
cmp eax, ebp
jl 0x41cad0
cmp edi, ecx
jle 0x41cafe
mov ecx, dword [esp + edi*4 + 0x54]
mov edx, dword [esp + 0x68]
lea eax, [esp + edi*4 + 0x54]
mov dword [edx], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
mov ecx, ebx
lea eax, [ebp - 1]
cmp ecx, eax
jl 0x41cab0
mov esi, dword [esp + 0x38]
mov eax, dword [esp + esi*4 + 0x50]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0x50]
mov edx, eax
shr edx, 0x18
mov byte [ecx], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 1], dl
mov edx, eax
shr edx, 8
xor ebp, ebp
xor edi, edi
test esi, esi
mov byte [ecx + 2], dl
mov byte [ecx + 3], al
mov dword [esp + 0x1c], ebp
jle 0x41cc71
mov eax, dword [esp + 0x44]
mov esi, dword [esp + ebp*4 + 0x54]
push eax
call fcn.00416fb0
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + ebp*4 + 0x8c]
add esp, 4
lea edx, [ecx + edi*2]
push edx
lea ecx, [eax + edi*4]
push ecx
mov edx, ebx
sub edx, edi
push edx
push esi
call fcn.0041c090
mov edi, ebx
add esp, 0x10
cmp edi, dword [esp + 0x24]
jge 0x41cc60
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
movzx ecx, word [ecx + edi*2]
mov ebp, dword [eax + edi*4]
movzx edx, word [esp + 0x30]
mov ebx, dword [esp + 0x48]
movzx eax, cx
add eax, edx
mov edx, dword [esp + 0xd0]
add ebx, edx
cmp byte [esi + 3], 0
jne 0x41cbb9
mov ecx, dword [esi + 0x38]
mov edx, dword [ebp]
mov dword [ecx + 8], edx
jmp 0x41cc1b
cmp dword [esp + 0x40], 0
je 0x41cbff
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + edi*4 - 4]
sub edi, 1
push esi
lea eax, [esp + 0xac]
call fcn.00416510
mov edx, dword [esp + 0xb0]
mov eax, dword [esp + 0xac]
add esp, 4
push edx
push eax
lea ecx, [ebx + 4]
mov ebp, ebx
call fcn.004097f0
add esp, 8
add eax, 4
xor ebx, ebx
jmp 0x41cc1b
sub ebp, 4
cmp cx, 4
jne 0x41cc1b
mov eax, dword [esp + 0xcc]
push ebp
call fcn.00416660
add esp, 4
movzx eax, ax
add dword [esp + 0x48], eax
cmp dword [esp + 0x10], 0
jne 0x41cf58
mov edx, dword [esi + 0x48]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
push edx
push ebx
push ebp
push ecx
mov ecx, dword [esp + 0xe0]
call fcn.0041bee0
add esp, 0x14
cmp dword [esp + 0x10], 0
jne 0x41cf58
mov ebp, dword [esp + 0x1c]
add edi, 1
add dword [esp + 0x14], 1
add ebp, 1
cmp ebp, dword [esp + 0x38]
mov dword [esp + 0x1c], ebp
jl 0x41cb40
test byte [esp + 0x44], 8
jne 0x41cc97
mov edx, dword [esp + 0x34]
mov eax, dword [esp + edx*4 + 0x98]
mov ecx, dword [eax + 0x38]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + edx*4 + 0x50]
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
cmp dword [esp + 0xd4], 0
mov ebx, dword [esp + 0x54]
je 0x41ccf1
mov eax, dword [esp + 0xcc]
cmp word [eax + 0x10], 0
jne 0x41ccf1
movzx dx, byte [eax + 5]
cmp dx, word [ebx + 0xe]
ja 0x41ccf1
lea ecx, [esp + 0x10]
push ecx
call fcn.0041c2f0
add esp, 4
cmp dword [esp + 0x10], 0
jne 0x41cf58
mov edx, dword [ebx + 0x48]
mov eax, dword [ebx + 0x34]
push edx
push eax
mov eax, ebx
call fcn.0041b5c0
add esp, 8
mov dword [esp + 0x10], eax
jmp 0x41cf58
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x11], 0
je 0x41cf58
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x9c]
movzx eax, byte [ebx + 1]
movzx esi, word [ebx + 0x10]
xor edi, edi
add esi, eax
cmp eax, edi
mov dword [esp + 0x48], eax
je 0x41cd24
movzx ebp, word [ebx + 0x14]
jmp 0x41cd27
or ebp, 0xffffffff
cmp dword [esp + 0x24], edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x50], edi
mov dword [esp + 0x4c], edi
jle 0x41cec1
mov dword [esp + 0x2c], edi
xor ecx, ecx
cmp edi, esi
jne 0x41cd8d
cmp dword [esp + 0x40], ecx
sete cl
mov edi, edi
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + eax*4 + 0xa0]
movzx edx, word [ebx + 0x10]
add eax, 1
mov dword [esp + 0x50], eax
mov al, byte [ebx + 1]
movzx esi, al
add edx, ecx
add esi, edx
add esi, edi
test al, al
je 0x41cd85
movzx ebp, word [ebx + 0x14]
movzx eax, al
add ebp, ecx
mov dword [esp + 0x48], eax
add ebp, edi
cmp edi, esi
je 0x41cd50
mov dword [esp + 0x20], ebp
cmp edi, ebp
jne 0x41cdab
mov eax, dword [esp + 0x48]
mov ecx, 1
sub eax, ecx
test eax, eax
mov dword [esp + 0x48], eax
jle 0x41cdab
add ebp, 1
mov dword [esp + 0x20], ebp
mov edx, dword [esp + 0x2c]
cmp edi, dword [esp + edx + 0x88]
jne 0x41cdde
mov eax, dword [esp + 0x4c]
add eax, 1
mov dword [esp + 0x4c], eax
add eax, eax
add eax, eax
cmp dword [esp + 0x40], 0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + eax + 0x54]
mov dword [esp + 0x14], eax
je 0x41ceb2
test ecx, ecx
jne 0x41cdf2
mov ecx, dword [ebx + 0x48]
mov edx, dword [esp + 0x14]
cmp ecx, dword [edx + 0x48]
je 0x41ceb2
cmp word [esp + 0x30], 0
jne 0x41ce35
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov eax, dword [eax + edi*4]
lea ecx, [esp + 0x10]
push ecx
mov ecx, dword [edx + 0x48]
xor edx, edx
mov dh, byte [eax]
push ecx
movzx ecx, byte [eax + 2]
push 5
mov dl, byte [eax + 1]
movzx eax, byte [eax + 3]
shl edx, 8
or edx, ecx
mov ecx, dword [esp + 0x24]
shl edx, 8
or eax, edx
call fcn.00416170
add esp, 0xc
mov ecx, dword [esp + 0x3c]
mov dx, word [ecx + edi*2]
mov eax, dword [esp + 0x14]
cmp dx, word [eax + 0xa]
jbe 0x41ceb2
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x28]
mov ebp, dword [ecx + edi*4]
jne 0x41ceae
mov edx, eax
push edx
lea eax, [esp + 0xac]
mov ecx, ebp
call fcn.00416510
mov ax, word [esp + 0xc4]
add esp, 4
test ax, ax
je 0x41ceae
movzx eax, ax
add eax, ebp
mov ebp, dword [esp + 0x14]
mov edx, dword [ebp + 0x48]
lea ecx, [esp + 0x10]
push ecx
xor ecx, ecx
mov ch, byte [eax]
push edx
movzx edx, byte [eax + 2]
push 3
mov cl, byte [eax + 1]
movzx eax, byte [eax + 3]
shl ecx, 8
or ecx, edx
shl ecx, 8
or eax, ecx
mov ecx, dword [ebp + 0x34]
call fcn.00416170
add esp, 0xc
mov ebp, dword [esp + 0x20]
add edi, 1
cmp edi, dword [esp + 0x24]
jl 0x41cd41
xor edi, edi
cmp word [esp + 0x30], di
jne 0x41cf58
mov ebx, dword [esp + 0x38]
xor esi, esi
cmp ebx, edi
jle 0x41cf58
mov edi, dword [esp + 0x18]
mov edi, edi
mov ecx, dword [esp + esi*4 + 0x54]
mov eax, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x48]
add eax, 8
lea edx, [esp + 0x10]
push edx
movzx edx, byte [eax + 1]
mov dh, byte [eax]
push ecx
movzx ecx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl edx, 8
or edx, ecx
shl edx, 8
push 5
or eax, edx
mov ecx, edi
call fcn.00416170
add esi, 1
add esp, 0xc
cmp esi, ebx
jl 0x41cee0
jmp 0x41cf58
push 0x4775ec
push 0xd86d
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00408500
lea ecx, [esi*4 + 4]
push ecx
lea edx, [esp + 0x80]
push 0
push edx
mov dword [esp + 0x2c], 0xb
call sub.MSVCR80.dll_memset
add esp, 0x1c
mov esi, dword [esp + 0x28]
call fcn.00406b30
mov edi, dword [esp + 0x34]
xor esi, esi
test edi, edi
jle 0x41cf8b
jmp 0x41cf70
mov eax, dword [esp + esi*4 + 0x6c]
test eax, eax
je 0x41cf84
mov eax, dword [eax + 0x44]
push eax
call fcn.00411f60
add esp, 4
add esi, 1
cmp esi, edi
jl 0x41cf70
mov edi, dword [esp + 0x38]
xor esi, esi
test edi, edi
jle 0x41cfb0
mov eax, dword [esp + esi*4 + 0x54]
test eax, eax
je 0x41cfa9
mov ecx, dword [eax + 0x44]
push ecx
call fcn.00411f60
add esp, 4
add esi, 1
cmp esi, edi
jl 0x41cf95
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret