Function at 0x2041ae10
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x20480dba
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov eax, dword [0x204a31e0]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov esi, ecx
mov edi, dword [esp + 0x48]
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
xor ebx, ebx
mov dword [esp + 0x40], ebx
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [esp + 0x40], 1
mov eax, vtable.CArray_int__int_const__.0
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
mov byte [esp + 0x40], 2
cmp dword [edi + 0xc], esi
jle 0x2041b356
cmp esi, ebx
jl 0x2041b356
cmp esi, dword [edi + 0xc]
jge 0x2041b02a
mov eax, dword [edi + 8]
lea ecx, [esi + esi*8]
shl ecx, 5
add eax, ecx
cmp dword [eax + 0xe8], ebx
je 0x2041b347
cmp esi, dword [edi + 0xc]
jge 0x2041b02a
mov eax, dword [edi + 8]
add eax, ecx
mov eax, dword [eax + 0xe8]
lea ebp, [eax + 2]
mov dx, word [eax]
add eax, 2
test dx, dx
jne 0x2041aec2
sub eax, ebp
sar eax, 1
je 0x2041b347
cmp esi, dword [edi + 0xc]
jge 0x2041b02a
mov eax, dword [edi + 8]
add eax, ecx
mov eax, dword [eax + 0xe8]
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.204647d0
xor ebp, ebp
add esp, 8
cmp dword [edi + 0xc], ebp
jle 0x2041afa5
xor esi, esi
mov dword [esp + 0x1c], esi
test esi, esi
jl 0x2041b02a
cmp ebp, dword [edi + 0xc]
jge 0x2041b02a
mov eax, dword [edi + 8]
add eax, esi
cmp dword [eax + 0xe8], 0
je 0x2041af8f
cmp ebp, dword [edi + 0xc]
jge 0x2041b02a
mov eax, dword [edi + 8]
add eax, esi
mov eax, dword [eax + 0xe8]
lea edx, [esp + 0x14]
push edx
push eax
call fcn.204647d0
mov eax, dword [esp + 0x1c]
add esp, 8
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_1472]
test eax, eax
jne 0x2041af8f
mov eax, dword [esp + 0x2c]
test eax, eax
mov dword [esp + 0x20], eax
jl 0x2041b02a
mov edi, eax
add edi, 1
lea esi, [esp + 0x24]
call fcn.2040fba0
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x48]
mov esi, dword [esp + 0x1c]
mov dword [edx + ecx*4], ebp
add ebp, 1
add esi, 0x120
cmp ebp, dword [edi + 0xc]
mov dword [esp + 0x1c], esi
jl 0x2041af0a
mov ecx, dword [esp + 0x2c]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x48], eax
jle 0x2041b28b
test eax, eax
mov esi, 0x40
jl 0x2041b02a
cmp eax, ecx
jge 0x2041b02a
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx + eax*4]
test eax, eax
jl 0x2041b274
cmp eax, dword [edi + 0xc]
jge 0x2041b274
lea ebp, [eax + eax*8]
shl ebp, 5
add ebp, dword [edi + 8]
je 0x2041b274
mov edx, dword [esp + 0x50]
push edx
mov ecx, ebp
call fcn.20418090
test al, al
je 0x2041b207
cmp dword [ebp + 0xb4], 1
mov eax, dword [ebp + 0x10]
jne 0x2041b0ed
test al, 1
je 0x2041b070
cmp dword [ebp + 0x14], esi
jne 0x2041b032
test bl, 8
jne 0x2041b032
test bl, 6
je 0x2041b02f
and ebx, 0xfffffff8
or ebx, 8
jmp 0x2041b032
call fcn.20477d24
or ebx, 1
test al, 1
je 0x2041b070
cmp dword [ebp + 0x14], 0
jne 0x2041b051
test bl, 8
jne 0x2041b051
test bl, 5
je 0x2041b04e
and ebx, 0xfffffff8
or ebx, 8
jmp 0x2041b051
or ebx, 2
test al, 1
je 0x2041b070
cmp dword [ebp + 0x14], 0x50
jne 0x2041b070
test bl, 8
jne 0x2041b070
test bl, 3
je 0x2041b06d
and ebx, 0xfffffff8
or ebx, 8
jmp 0x2041b070
or ebx, 4
test al, 2
je 0x2041b274
cmp dword [ebp + 0x14], esi
jne 0x2041b094
test bl, bl
js 0x2041b094
test bl, 0x60
je 0x2041b091
and ebx, 0xffffff8f
or ebx, 0x80
jmp 0x2041b094
or ebx, 0x10
test al, 2
je 0x2041b274
cmp dword [ebp + 0x14], 0
jne 0x2041b0b9
test bl, bl
js 0x2041b0b9
test bl, 0x50
je 0x2041b0b6
and ebx, 0xffffff8f
or ebx, 0x80
jmp 0x2041b0b9
or ebx, 0x20
test al, 2
je 0x2041b274
cmp dword [ebp + 0x14], 0x50
jne 0x2041b274
test bl, bl
js 0x2041b274
test bl, 0x30
je 0x2041b0e6
and ebx, 0xffffff8f
or ebx, 0x80
jmp 0x2041b274
or ebx, esi
jmp 0x2041b274
test al, 1
je 0x2041b17a
cmp dword [ebp + 0x14], esi
jne 0x2041b11e
test ebx, 0x800
jne 0x2041b11e
test ebx, 0x600
je 0x2041b118
and ebx, 0xfffff8ff
or ebx, 0x800
jmp 0x2041b11e
or ebx, 0x100
test al, 1
je 0x2041b17a
cmp dword [ebp + 0x14], 0
jne 0x2041b14c
test ebx, 0x800
jne 0x2041b14c
test ebx, 0x500
je 0x2041b146
and ebx, 0xfffff8ff
or ebx, 0x800
jmp 0x2041b14c
or ebx, 0x200
test al, 1
je 0x2041b17a
cmp dword [ebp + 0x14], 0x50
jne 0x2041b17a
test ebx, 0x800
jne 0x2041b17a
test ebx, 0x300
je 0x2041b174
and ebx, 0xfffff8ff
or ebx, 0x800
jmp 0x2041b17a
or ebx, 0x400
test al, 2
je 0x2041b274
cmp dword [ebp + 0x14], esi
jne 0x2041b1ab
test ebx, 0x8000
jne 0x2041b1ab
test ebx, 0x6000
je 0x2041b1a5
and ebx, 0xffff8fff
or ebx, 0x8000
jmp 0x2041b1ab
or ebx, 0x1000
test al, 2
je 0x2041b274
cmp dword [ebp + 0x14], 0
jne 0x2041b1dd
test ebx, 0x8000
jne 0x2041b1dd
test ebx, 0x5000
je 0x2041b1d7
and ebx, 0xffff8fff
or ebx, 0x8000
jmp 0x2041b1dd
or ebx, 0x2000
test al, 2
je 0x2041b274
cmp dword [ebp + 0x14], 0x50
jne 0x2041b274
test ebx, 0x8000
jne 0x2041b274
test ebx, 0x3000
jne 0x2041b268
or ebx, 0x4000
jmp 0x2041b274
test byte [ebp + 0x10], 1
je 0x2041b23c
mov esi, dword [esp + 0x50]
mov ecx, ebp
call fcn.204181c0
test al, al
je 0x2041b222
and ebx, 0xfffffff8
or ebx, 8
mov eax, esi
push eax
mov eax, ebp
call fcn.20418200
test al, al
je 0x2041b23c
and ebx, 0xfffff8ff
or ebx, 0x800
test byte [ebp + 0x10], 2
je 0x2041b274
mov esi, dword [esp + 0x50]
mov ecx, ebp
call fcn.204181c0
test al, al
je 0x2041b25a
and ebx, 0xffffff8f
or ebx, 0x80
mov ecx, esi
push ecx
mov eax, ebp
call fcn.20418200
test al, al
je 0x2041b274
and ebx, 0xffff8fff
or ebx, 0x8000
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
add eax, 1
cmp eax, ecx
mov dword [esp + 0x48], eax
jl 0x2041afb7
test bl, 0xf
jne 0x2041b29c
mov eax, ebx
and eax, 0xf00
shr eax, 8
or ebx, eax
test bl, 0xf0
jne 0x2041b2ad
mov eax, ebx
and eax, 0xf000
shr eax, 8
or ebx, eax
mov ecx, dword [esp + 0x4c]
cmp ecx, 4
mov eax, 8
ja case.default.0x2041b2bb
jmp dword [ecx*4 + 0x2041b398]
mov eax, 2
jmp case.default.0x2041b2bb
mov eax, 4
jmp case.default.0x2041b2bb
mov eax, 1
test bl, 0xf
jne 0x2041b2dc
or ebx, eax
test bl, 0xf0
jne 0x2041b2e8
mov edx, eax
shl edx, 4
or ebx, edx
test ebx, 0xf00
jne 0x2041b2f7
mov ecx, eax
shl ecx, 8
or ebx, ecx
test ebx, 0xf000
jne 0x2041b304
shl eax, 0xc
or ebx, eax
mov byte [esp + 0x40], 1
mov eax, dword [esp + 0x28]
test eax, eax
mov dword [esp + 0x24], vtable.CArray_int__int_const__.0
je 0x2041b322
push eax
call sub.MFC80U.DLL_Ordinal_266
add esp, 4
mov byte [esp + 0x40], 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov dword [esp + 0x40], 0xffffffff
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov eax, ebx
jmp 0x2041b382
mov byte [esp + 0x40], 1
mov dword [esp + 0x24], vtable.CArray_int__int_const__.0
jmp 0x2041b35f
mov byte [esp + 0x40], 1
mov dword [esp + 0x24], eax
mov byte [esp + 0x40], 0
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov dword [esp + 0x40], 0xffffffff
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
xor eax, eax
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret 0xc