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

Disassembly:
mov eax, 0x3b70
call fcn.006143b0
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov edx, 0xf
lea eax, [ebp + 0x104]
mov ecx, 0xa
mov dword [eax], 0
add eax, 0x88
dec ecx
jne 0x529020
dec edx
jne 0x52901b
mov dword [esp + 0x40], 1
mov eax, dword [0xcf9324]
test eax, eax
je 0x52ad0d
mov eax, dword [esp + 0x40]
mov edx, dword [0xcf9370]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [edx + ecx*4 + 0x10]
test eax, eax
je 0x52ad0d
call fcn.0051e4d0
mov eax, dword [esp + 0x40]
lea edx, [eax + eax*4]
mov dword [esp + 0x30], edx
lea ecx, [edx - 5]
cmp ecx, edx
jge 0x52a0d7
mov eax, ecx
shl eax, 4
add eax, ecx
lea eax, [eax + eax*4]
shl eax, 4
sub edx, ecx
lea ebx, [eax + ebp + 0xe0]
mov dword [esp + 0x34], edx
mov dword [esp + 0x24], 0xa
cmp dword [ebx], 0
jle 0x52a0af
mov ecx, dword [0xcf95d4]
mov edx, dword [0xcf95d0]
lea esi, [ebx - 0x10]
push ecx
push edx
push esi
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x529374
mov eax, dword [ebx]
mov ecx, ebp
push eax
call fcn.0053bf30
test eax, eax
je 0x529374
mov eax, dword [0xcf50e4]
test eax, eax
jne 0x529374
mov eax, dword [0xcea298]
test eax, eax
jne 0x529374
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x28], ecx
test eax, eax
mov dword [esp + 0x18], edx
jne 0x52912f
lea eax, [ebp + 0x94]
push 0
lea ecx, [ebp + 0x58]
push eax
push ecx
push 0
push 0
push 0
push str..BitmapsInterfaceWSAgreen.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x1c], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x1a5a], edx
mov ecx, 0x4c
mov dword [esp + 0x1a5e], edx
lea esi, [esp + 0x19e0]
mov dword [esp + 0x1a62], edx
lea edi, [esp + 0x2118]
mov byte [esp + 0x1a66], dl
mov dword [esp + 0x2114], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2114]
lea edx, [esp + 0xdc]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x20], edx
jle 0x52a0af
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov edx, eax
shl edx, 4
add edx, eax
lea eax, [ebp + edx*8 + 0xd0]
mov dword [esp + 0x10], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x10da], ecx
lea esi, [esp + 0x1060]
mov dword [esp + 0x10de], ecx
lea edi, [esp + 0x1c48]
mov dword [esp + 0x10e2], ecx
mov dword [esp + 0x1c44], edx
mov byte [esp + 0x10e6], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1c44]
lea ecx, [esp + 0xb4]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x5292ec
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], edx
mov eax, dword [ebp + 0x94]
mov edx, dword [ebp + 0x58]
mov esi, dword [esp + 0x18]
push 0xff
mov ecx, dword [eax]
mov eax, dword [ebp + 0x1c]
push ecx
push edx
mov ecx, dword [eax]
mov edx, dword [esi + 4]
mov eax, dword [esi]
push ecx
push edx
push eax
call dword [0xd36acc]
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x10f2], ecx
mov dword [esi + 0x34], 1
mov edx, dword [ebx]
mov dword [esp + 0x10f6], ecx
add esi, 0x88
mov dword [esp + 0x10fa], ecx
add esp, 0x18
mov dword [esp + 0x18], esi
mov byte [esp + 0x10e6], cl
inc eax
mov ecx, 0x4c
lea esi, [esp + 0x1060]
lea edi, [esp + 0x1c48]
mov dword [esp + 0x1c44], edx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c44]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xb4]
push eax
push ecx
mov ecx, ebp
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x529239
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
add eax, 0x550
inc ecx
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x1a5a], eax
mov dword [esp + 0x14], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x1a5e], eax
mov dword [esp + 0x1a62], eax
mov dword [esp + 0x2114], ecx
mov ecx, 0x4c
lea esi, [esp + 0x19e0]
lea edi, [esp + 0x2118]
mov byte [esp + 0x1a66], al
lea edx, [esp + 0x2114]
lea eax, [esp + 0xdc]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x5291c0
jmp 0x52a0af
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x35fe], edx
mov ecx, 0x4c
mov dword [esp + 0x3602], edx
lea esi, [esp + 0x3584]
mov dword [esp + 0x3606], edx
lea edi, [esp + 0x3a50]
mov byte [esp + 0x360a], dl
mov dword [esp + 0x3a4c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x3a4c]
lea edx, [esp + 0x114]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov cl, byte [eax + 0x80]
test cl, 0x40
mov dword [esp + 0x3c], edx
je 0x52a0af
mov ecx, dword [ebx]
xor eax, eax
mov dword [esp + 0x34ce], eax
mov dword [esp + 0x37e4], ecx
mov dword [esp + 0x34d2], eax
mov ecx, 0x4c
mov dword [esp + 0x34d6], eax
lea esi, [esp + 0x3454]
lea edi, [esp + 0x37e8]
mov byte [esp + 0x34da], al
lea edx, [esp + 0x37e4]
lea eax, [esp + 0x11c]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x372e], ecx
lea esi, [esp + 0x36b4]
mov dword [esp + 0x3732], ecx
lea edi, [esp + 0x391c]
mov dword [esp + 0x3736], ecx
mov dword [esp + 0x3918], edx
mov byte [esp + 0x373a], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x3918]
lea ecx, [esp + 0x9c]
push eax
push ecx
mov ecx, ebp
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x7c]
cmp ecx, 0x300ff
je 0x52a0af
cmp ecx, 0x20000
jne 0x52970c
test dword [0x6d6a08], 0x200000
jne 0x52a0af
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x5294e7
lea edx, [ebp + 0x90]
push 0
lea eax, [ebp + 0x54]
push edx
push eax
push 0
push 0
push 0
push str..BitmapsInterfaceWSA_red.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x18], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x75a], ecx
lea esi, [esp + 0x6e0]
mov dword [esp + 0x75e], ecx
lea edi, [esp + 0x2380]
mov dword [esp + 0x762], ecx
mov dword [esp + 0x237c], edx
mov byte [esp + 0x766], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x237c]
lea ecx, [esp + 0xfc]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x52a0af
lea eax, [ebx - 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x120a], edx
mov ecx, 0x4c
mov dword [esp + 0x120e], edx
lea esi, [esp + 0x1190]
mov dword [esp + 0x1212], edx
lea edi, [esp + 0x2ab8]
mov byte [esp + 0x1216], dl
mov dword [esp + 0x2ab4], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2ab4]
lea edx, [esp + 0xec]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x2c], edx
jle 0x529684
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 0x90]
mov eax, dword [ebp + 0x54]
mov esi, dword [esp + 0x18]
push 0xc8
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
push edx
push eax
mov edx, dword [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
push eax
push ecx
call dword [0xd36acc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx]
xor edx, edx
add esp, 0x18
mov dword [esp + 0x120a], edx
inc ecx
add esi, 0x88
mov dword [esp + 0x120e], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1212], edx
mov ecx, 0x4c
lea esi, [esp + 0x1190]
lea edi, [esp + 0x2ab8]
mov byte [esp + 0x1216], dl
mov dword [esp + 0x2ab4], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2ab4]
lea edx, [esp + 0xec]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x5295d8
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor edx, edx
add eax, 0x550
mov dword [esp + 0x75a], edx
inc ecx
mov dword [esp + 0x75e], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x762], edx
mov ecx, 0x4c
lea esi, [esp + 0x6e0]
lea edi, [esp + 0x2380]
mov byte [esp + 0x766], dl
mov dword [esp + 0x237c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x237c]
lea edx, [esp + 0xfc]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x52955f
jmp 0x52a0af
mov eax, dword [0x6d6868]
cmp eax, 1
je 0x529e62
cmp eax, 2
je 0x529e62
cmp eax, 4
je 0x529c0a
cmp eax, 8
je 0x529c0a
cmp eax, 0x10
je 0x5299b2
cmp eax, 0x20
je 0x5299b2
cmp eax, 0x40
je 0x529757
cmp eax, 0x80
jne 0x52a0af
cmp ecx, 0xc0
je 0x52a0af
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x52978d
lea edx, [ebp + 0x90]
push 0
lea eax, [ebp + 0x54]
push edx
push eax
push 0
push 0
push 0
push str..BitmapsInterfaceWSA_red.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x18], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x9ba], ecx
lea esi, [esp + 0x940]
mov dword [esp + 0x9be], ecx
lea edi, [esp + 0x25e8]
mov dword [esp + 0x9c2], ecx
mov dword [esp + 0x25e4], edx
mov byte [esp + 0x9c6], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x25e4]
lea ecx, [esp + 0x84]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x52a0af
lea eax, [ebx - 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x3ca], edx
mov ecx, 0x4c
mov dword [esp + 0x3ce], edx
lea esi, [esp + 0x350]
mov dword [esp + 0x3d2], edx
lea edi, [esp + 0x2f88]
mov byte [esp + 0x3d6], dl
mov dword [esp + 0x2f84], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2f84]
lea edx, [esp + 0x10c]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x2c], edx
jle 0x52992a
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 0x90]
mov eax, dword [ebp + 0x54]
mov esi, dword [esp + 0x18]
push 0xc8
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
push edx
push eax
mov edx, dword [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
push eax
push ecx
call dword [0xd36acc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx]
xor edx, edx
add esp, 0x18
mov dword [esp + 0x3ca], edx
inc ecx
add esi, 0x88
mov dword [esp + 0x3ce], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x3d2], edx
mov ecx, 0x4c
lea esi, [esp + 0x350]
lea edi, [esp + 0x2f88]
mov byte [esp + 0x3d6], dl
mov dword [esp + 0x2f84], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2f84]
lea edx, [esp + 0x10c]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x52987e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor edx, edx
add eax, 0x550
mov dword [esp + 0x9ba], edx
inc ecx
mov dword [esp + 0x9be], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x9c2], edx
mov ecx, 0x4c
lea esi, [esp + 0x940]
lea edi, [esp + 0x25e8]
mov byte [esp + 0x9c6], dl
mov dword [esp + 0x25e4], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x25e4]
lea edx, [esp + 0x84]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x529805
jmp 0x52a0af
cmp ecx, 0x30
je 0x52a0af
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x5299e5
lea edx, [ebp + 0x90]
push 0
lea eax, [ebp + 0x54]
push edx
push eax
push 0
push 0
push 0
push str..BitmapsInterfaceWSA_red.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x18], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0xc1a], ecx
lea esi, [esp + 0xba0]
mov dword [esp + 0xc1e], ecx
lea edi, [esp + 0x2850]
mov dword [esp + 0xc22], ecx
mov dword [esp + 0x284c], edx
mov byte [esp + 0xc26], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x284c]
lea ecx, [esp + 0x104]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x52a0af
lea eax, [ebx - 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x16ca], edx
mov ecx, 0x4c
mov dword [esp + 0x16ce], edx
lea esi, [esp + 0x1650]
mov dword [esp + 0x16d2], edx
lea edi, [esp + 0x2d20]
mov byte [esp + 0x16d6], dl
mov dword [esp + 0x2d1c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2d1c]
lea edx, [esp + 0x8c]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x2c], edx
jle 0x529b82
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 0x90]
mov eax, dword [ebp + 0x54]
mov esi, dword [esp + 0x18]
push 0xc8
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
push edx
push eax
mov edx, dword [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
push eax
push ecx
call dword [0xd36acc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx]
xor edx, edx
add esp, 0x18
mov dword [esp + 0x16ca], edx
inc ecx
add esi, 0x88
mov dword [esp + 0x16ce], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x16d2], edx
mov ecx, 0x4c
lea esi, [esp + 0x1650]
lea edi, [esp + 0x2d20]
mov byte [esp + 0x16d6], dl
mov dword [esp + 0x2d1c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2d1c]
lea edx, [esp + 0x8c]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x529ad6
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor edx, edx
add eax, 0x550
mov dword [esp + 0xc1a], edx
inc ecx
mov dword [esp + 0xc1e], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xc22], edx
mov ecx, 0x4c
lea esi, [esp + 0xba0]
lea edi, [esp + 0x2850]
mov byte [esp + 0xc26], dl
mov dword [esp + 0x284c], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x284c]
lea edx, [esp + 0x104]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x529a5d
jmp 0x52a0af
cmp ecx, 0xc
je 0x52a0af
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x529c3d
lea edx, [ebp + 0x90]
push 0
lea eax, [ebp + 0x54]
push edx
push eax
push 0
push 0
push 0
push str..BitmapsInterfaceWSA_red.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x18], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0xe7a], ecx
lea esi, [esp + 0xe00]
mov dword [esp + 0xe7e], ecx
lea edi, [esp + 0x1fe4]
mov dword [esp + 0xe82], ecx
mov dword [esp + 0x1fe0], edx
mov byte [esp + 0xe86], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1fe0]
lea ecx, [esp + 0xd4]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x52a0af
lea eax, [ebx - 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x146a], edx
mov ecx, 0x4c
mov dword [esp + 0x146e], edx
lea esi, [esp + 0x13f0]
mov dword [esp + 0x1472], edx
lea edi, [esp + 0x1eb0]
mov byte [esp + 0x1476], dl
mov dword [esp + 0x1eac], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1eac]
lea edx, [esp + 0x94]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x2c], edx
jle 0x529dda
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 0x90]
mov eax, dword [ebp + 0x54]
mov esi, dword [esp + 0x18]
push 0xc8
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
push edx
push eax
mov edx, dword [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
push eax
push ecx
call dword [0xd36acc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx]
xor edx, edx
add esp, 0x18
mov dword [esp + 0x146a], edx
inc ecx
add esi, 0x88
mov dword [esp + 0x146e], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1472], edx
mov ecx, 0x4c
lea esi, [esp + 0x13f0]
lea edi, [esp + 0x1eb0]
mov byte [esp + 0x1476], dl
mov dword [esp + 0x1eac], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1eac]
lea edx, [esp + 0x94]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x529d2e
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor edx, edx
add eax, 0x550
mov dword [esp + 0xe7a], edx
inc ecx
mov dword [esp + 0xe7e], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0xe82], edx
mov ecx, 0x4c
lea esi, [esp + 0xe00]
lea edi, [esp + 0x1fe4]
mov byte [esp + 0xe86], dl
mov dword [esp + 0x1fe0], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1fe0]
lea edx, [esp + 0xd4]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x529cb5
jmp 0x52a0af
cmp ecx, 3
je 0x52a0af
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x529e95
lea edx, [ebp + 0x90]
push 0
lea eax, [ebp + 0x54]
push edx
push eax
push 0
push 0
push 0
push str..BitmapsInterfaceWSA_red.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x18], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x4fa], ecx
lea esi, [esp + 0x480]
mov dword [esp + 0x4fe], ecx
lea edi, [esp + 0x1d7c]
mov dword [esp + 0x502], ecx
mov dword [esp + 0x1d78], edx
mov byte [esp + 0x506], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x1d78]
lea ecx, [esp + 0xa4]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x1c], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x2c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x52a0af
lea eax, [ebx - 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x192a], edx
mov ecx, 0x4c
mov dword [esp + 0x192e], edx
lea esi, [esp + 0x18b0]
mov dword [esp + 0x1932], edx
lea edi, [esp + 0x224c]
mov byte [esp + 0x1936], dl
mov dword [esp + 0x2248], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2248]
lea edx, [esp + 0x74]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x2c], edx
jle 0x52a02c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov ecx, dword [ebp + 0x90]
mov eax, dword [ebp + 0x54]
mov esi, dword [esp + 0x18]
push 0xc8
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x18]
push edx
push eax
mov edx, dword [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
push eax
push ecx
call dword [0xd36acc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebx]
xor edx, edx
add esp, 0x18
mov dword [esp + 0x192a], edx
inc ecx
add esi, 0x88
mov dword [esp + 0x192e], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1932], edx
mov ecx, 0x4c
lea esi, [esp + 0x18b0]
lea edi, [esp + 0x224c]
mov byte [esp + 0x1936], dl
mov dword [esp + 0x2248], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2248]
lea edx, [esp + 0x74]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x529f83
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
xor edx, edx
add eax, 0x550
mov dword [esp + 0x4fa], edx
inc ecx
mov dword [esp + 0x4fe], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x502], edx
mov ecx, 0x4c
lea esi, [esp + 0x480]
lea edi, [esp + 0x1d7c]
mov byte [esp + 0x506], dl
mov dword [esp + 0x1d78], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1d78]
lea edx, [esp + 0xa4]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x529f0d
mov eax, dword [esp + 0x24]
add ebx, 0x88
dec eax
mov dword [esp + 0x24], eax
jne 0x5290a2
mov eax, dword [esp + 0x34]
dec eax
mov dword [esp + 0x34], eax
jne 0x52909a
mov edx, dword [esp + 0x30]
lea ecx, [edx - 5]
cmp ecx, edx
mov dword [esp + 0x14], ecx
jge 0x52ab47
mov eax, ecx
shl eax, 4
add eax, ecx
lea edx, [eax + eax*4]
shl edx, 4
lea ebx, [edx + ebp + 0xe0]
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [ebx]
test ecx, ecx
je 0x52ab1a
mov edx, dword [esp + 0x14]
mov esi, dword [ebx + 8]
cmp esi, edx
jne 0x52ab1a
cmp dword [ebx + 0xc], eax
jne 0x52ab1a
push ecx
mov ecx, ebp
call fcn.0053bf30
test eax, eax
je 0x52ab1a
mov ecx, dword [ebx]
xor eax, eax
mov dword [esp + 0xfaa], eax
mov dword [esp + 0x2e50], ecx
mov dword [esp + 0xfae], eax
mov ecx, 0x4c
mov dword [esp + 0xfb2], eax
lea esi, [esp + 0xf30]
lea edi, [esp + 0x2e54]
mov byte [esp + 0xfb6], al
lea edx, [esp + 0x2e50]
lea eax, [esp + 0xac]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, dword [eax]
mov edx, dword [eax + 4]
xor eax, eax
mov ax, word [ecx + 0x5c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x10], eax
mov eax, dword [ebx]
test eax, eax
je 0x52a871
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x52a871
xor ecx, ecx
lea esi, [esp + 0x12c0]
mov dword [esp + 0x133a], ecx
lea edi, [esp + 0x30bc]
mov dword [esp + 0x133e], ecx
mov dword [esp + 0x30b8], eax
mov dword [esp + 0x1342], ecx
lea edx, [esp + 0x30b8]
mov byte [esp + 0x1346], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xbc]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x84]
test ecx, ecx
mov dword [esp + 0x3c], edx
je 0x52a4fa
mov ecx, dword [ebx]
xor eax, eax
mov ax, word [ebx + 0x57]
push eax
push ecx
call fcn.0053bfa0
add esp, 8
test eax, eax
jne 0x52a4fa
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x52a4fa
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x159a], edx
mov ecx, 0x4c
mov dword [esp + 0x159e], edx
lea esi, [esp + 0x1520]
mov dword [esp + 0x15a2], edx
lea edi, [esp + 0x3324]
mov byte [esp + 0x15a6], dl
mov dword [esp + 0x3320], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x3320]
lea edx, [esp + 0xcc]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov cl, byte [eax + 0x80]
test cl, 0x40
mov dword [esp + 0x3c], edx
jne 0x52a4fa
mov eax, dword [ebp + 0x18]
test eax, eax
jne 0x52a2da
lea eax, [ebp + 0x90]
push 0
lea ecx, [ebp + 0x54]
push eax
push ecx
push 0
push 0
push 0
push str..BitmapsInterfaceWSA_red.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x18], eax
mov eax, dword [ebx]
xor edx, edx
mov dword [esp + 0x88a], edx
mov ecx, 0x4c
mov dword [esp + 0x88e], edx
lea esi, [esp + 0x810]
mov dword [esp + 0x892], edx
lea edi, [esp + 0x271c]
mov byte [esp + 0x896], dl
mov dword [esp + 0x2718], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2718]
lea edx, [esp + 0xe4]
push ecx
push edx
mov ecx, ebp
mov dword [esp + 0x2c], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov dword [esp + 0x3c], edx
jle 0x52a4fa
lea eax, [ebx - 0x10]
mov dword [esp + 0x34], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x62a], ecx
lea esi, [esp + 0x5b0]
mov dword [esp + 0x62e], ecx
lea edi, [esp + 0x24b4]
mov dword [esp + 0x632], ecx
mov dword [esp + 0x24b0], edx
mov byte [esp + 0x636], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x24b0]
lea ecx, [esp + 0xf4]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x74]
test ecx, ecx
jle 0x52a477
mov edx, dword [esp + 0x34]
mov dword [esp + 0x28], edx
mov eax, dword [ebp + 0x90]
mov edx, dword [ebp + 0x54]
mov esi, dword [esp + 0x28]
push 0xc8
mov ecx, dword [eax]
mov eax, dword [ebp + 0x18]
push ecx
push edx
mov ecx, dword [eax]
mov edx, dword [esi + 4]
mov eax, dword [esi]
push ecx
push edx
push eax
call dword [0xd36acc]
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0x642], ecx
mov dword [esp + 0x646], ecx
add esi, 0x88
mov dword [esp + 0x64a], ecx
add esp, 0x18
mov dword [esp + 0x28], esi
mov byte [esp + 0x636], cl
inc eax
mov ecx, 0x4c
lea esi, [esp + 0x5b0]
lea edi, [esp + 0x24b4]
mov dword [esp + 0x24b0], edx
mov dword [esp + 0x1c], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x24b0]
lea ecx, [esp + 0xf4]
push eax
push ecx
mov ecx, ebp
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x74]
cmp edx, ecx
jl 0x52a3cb
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
add eax, 0x550
inc ecx
mov dword [esp + 0x34], eax
xor eax, eax
mov dword [esp + 0x88a], eax
mov dword [esp + 0x24], ecx
mov ecx, dword [ebx]
mov dword [esp + 0x88e], eax
mov dword [esp + 0x892], eax
mov dword [esp + 0x2718], ecx
mov ecx, 0x4c
lea esi, [esp + 0x810]
lea edi, [esp + 0x271c]
mov byte [esp + 0x896], al
lea edx, [esp + 0x2718]
lea eax, [esp + 0xe4]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x52a352
mov eax, dword [ebx + 0x1c]
test eax, eax
jne 0x52a513
mov eax, dword [ebx + 0x18]
test eax, eax
jne 0x52a513
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x52a757
mov eax, dword [ebp + 0x3c]
test eax, eax
jne 0x52a53d
lea edx, [ebp + 0xb4]
push 0
lea eax, [ebp + 0x78]
push edx
push eax
push 0
push 0
push 0
push str..BitmapsInterfaceWSAjiaoyi.wsa
call fcn.005a5e90
add esp, 0x1c
mov dword [ebp + 0x3c], eax
xor ecx, ecx
mov edx, dword [ebx]
mov dword [esp + 0xd4a], ecx
lea esi, [esp + 0xcd0]
mov dword [esp + 0xd4e], ecx
lea edi, [esp + 0x2bec]
mov dword [esp + 0xd52], ecx
mov dword [esp + 0x2be8], edx
mov byte [esp + 0xd56], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2be8]
lea ecx, [esp + 0x7c]
push eax
push ecx
mov ecx, ebp
mov dword [esp + 0x24], 0
call fcn.00474ae0
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x78]
test ecx, ecx
jle 0x52a757
lea edx, [ebx - 0x10]
mov dword [esp + 0x34], edx
mov ecx, dword [ebx]
xor eax, eax
mov dword [esp + 0xaea], eax
mov dword [esp + 0x2980], ecx
mov dword [esp + 0xaee], eax
mov ecx, 0x4c
mov dword [esp + 0xaf2], eax
lea esi, [esp + 0xa70]
lea edi, [esp + 0x2984]
mov byte [esp + 0xaf6], al
lea edx, [esp + 0x2980]
lea eax, [esp + 0xc4]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
mov dword [esp + 0x2c], 0
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x74]
test ecx, ecx
mov dword [esp + 0x3c], edx
jle 0x52a6d7
mov eax, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov ecx, dword [ebp + 0xb4]
mov eax, dword [ebp + 0x78]
mov esi, dword [esp + 0x28]
push 0xff
mov edx, dword [ecx]
mov ecx, dword [ebp + 0x3c]
push edx
push eax
mov edx, dword [ecx]
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push edx
push eax
push ecx
call dword [0xd36acc]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ebx]
xor edx, edx
add esp, 0x18
mov dword [esp + 0xaea], edx
inc ecx
add esi, 0x88
mov dword [esp + 0xaee], edx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0xaf2], edx
mov ecx, 0x4c
lea esi, [esp + 0xa70]
lea edi, [esp + 0x2984]
mov byte [esp + 0xaf6], dl
mov dword [esp + 0x2980], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2980]
lea edx, [esp + 0xc4]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x74]
cmp ecx, edx
jl 0x52a62b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
xor edx, edx
add eax, 0x550
mov dword [esp + 0xd4a], edx
inc ecx
mov dword [esp + 0xd4e], edx
mov dword [esp + 0x34], eax
mov eax, dword [ebx]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xd52], edx
mov ecx, 0x4c
lea esi, [esp + 0xcd0]
lea edi, [esp + 0x2bec]
mov byte [esp + 0xd56], dl
mov dword [esp + 0x2be8], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x2be8]
lea edx, [esp + 0x7c]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 0x78]
cmp ecx, edx
jl 0x52a5b2
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx*4 + 0xa43b20]
test eax, eax
jne 0x52a84a
mov edx, dword [str..BitmapsItem_]
mov eax, dword [0x656008]
mov ecx, dword [0x65600c]
mov dword [esp + 0x124], edx
mov edx, dword [0x656010]
mov dword [esp + 0x128], eax
mov dword [esp + 0x12c], ecx
mov ecx, 0x2e
xor eax, eax
lea edi, [esp + 0x134]
mov dword [esp + 0x130], edx
push 0xa
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x64]
push eax
push ecx
call fcn.0061d6c5
mov edi, str..wsa
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x6c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x134]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x74]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x138]
lea eax, [esi*4 + 0xa2e594]
push eax
push 0xa257d8
push 0
push 0
push ecx
call fcn.005a5e90
add esp, 0x28
mov dword [esi*4 + 0xa43b20], eax
mov ecx, esi
mov eax, dword [ecx*4 + 0xa43b20]
test eax, eax
je 0x52a871
mov edx, dword [ecx*4 + 0xa2e594]
mov eax, dword [eax]
mov ecx, dword [ebx - 0xc]
push edx
mov edx, dword [ebx - 0x10]
push eax
push ecx
push edx
call dword [0xd36aac]
add esp, 0x10
mov ecx, dword [ebx]
xor eax, eax
mov dword [esp + 0x17fa], eax
mov dword [esp + 0x31ec], ecx
mov dword [esp + 0x17fe], eax
mov ecx, 0x4c
mov dword [esp + 0x1802], eax
lea esi, [esp + 0x1780]
lea edi, [esp + 0x31f0]
mov byte [esp + 0x1806], al
lea edx, [esp + 0x31ec]
lea eax, [esp + 0x44]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [eax + 0x108]
cmp ecx, 1
mov dword [esp + 0x3c], edx
jle 0x52ab1a
mov ecx, dword [ebx + 4]
lea eax, [esp + 0x31c]
push 0xa
push eax
push ecx
call fcn.0061d6c5
mov edx, dword [ebx - 0xc]
mov eax, dword [ebx - 0x10]
push 0x8dd885
push edx
lea ecx, [esp + 0x330]
push eax
push ecx
call fcn.0047af10
mov eax, dword [0xcf2990]
add esp, 0x1c
cmp eax, 0xa23
jne 0x52a924
mov edx, dword [0xcf9370]
mov eax, dword [edx + 0x64]
test eax, eax
jne 0x52a97d
push 0xa27
call fcn.0051f400
add esp, 4
test al, al
je 0x52a941
mov eax, dword [0xcf9370]
mov ecx, dword [eax + 0x64]
test ecx, ecx
jne 0x52a97d
push 0xa67
call fcn.0051f400
add esp, 4
test al, al
je 0x52a95f
mov ecx, dword [0xcf9370]
mov eax, dword [ecx + 0x64]
test eax, eax
jne 0x52a97d
push 0xa86
call fcn.0051f400
add esp, 4
test al, al
je 0x52a9bb
mov edx, dword [0xcf9370]
mov eax, dword [edx + 0x64]
test eax, eax
je 0x52a9bb
mov eax, dword [0xa4f274]
push 0x8dd885
test eax, eax
je 0x52a9a0
mov eax, dword [ebp + 0x4ffc]
mov ecx, dword [ebp + 0x4ff8]
push eax
push ecx
push 0x66b1ac
jmp 0x52a9b3
mov edx, dword [ebp + 0x4ffc]
mov eax, dword [ebp + 0x4ff8]
push edx
push eax
push 0x66b1a4
call fcn.0047af10
add esp, 0x10
cmp dword [0xcf2908], 0xa24
jne 0x52a9d4
mov ecx, dword [0xcf9370]
mov eax, dword [ecx + 0x64]
test eax, eax
jne 0x52aa2d
push 0xa28
call fcn.0051f400
add esp, 4
test al, al
je 0x52a9f2
mov edx, dword [0xcf9370]
mov eax, dword [edx + 0x64]
test eax, eax
jne 0x52aa2d
push 0xa68
call fcn.0051f400
add esp, 4
test al, al
je 0x52aa0f
mov eax, dword [0xcf9370]
mov ecx, dword [eax + 0x64]
test ecx, ecx
jne 0x52aa2d
push 0xa87
call fcn.0051f400
add esp, 4
test al, al
je 0x52aa6b
mov ecx, dword [0xcf9370]
mov eax, dword [ecx + 0x64]
test eax, eax
je 0x52aa6b
mov eax, dword [0xa4f274]
push 0x8dd885
test eax, eax
je 0x52aa50
mov edx, dword [ebp + 0x4f74]
mov eax, dword [ebp + 0x4f70]
push edx
push eax
push 0x66b1ac
jmp 0x52aa63
mov ecx, dword [ebp + 0x4f74]
mov edx, dword [ebp + 0x4f70]
push ecx
push edx
push 0x66b1a4
call fcn.0047af10
add esp, 0x10
cmp dword [0xcf2880], 0xa25
jne 0x52aa83
mov eax, dword [0xcf9370]
mov ecx, dword [eax + 0x64]
test ecx, ecx
jne 0x52aadc
push 0xa29
call fcn.0051f400
add esp, 4
test al, al
je 0x52aaa1
mov ecx, dword [0xcf9370]
mov eax, dword [ecx + 0x64]
test eax, eax
jne 0x52aadc
push 0xa69
call fcn.0051f400
add esp, 4
test al, al
je 0x52aabf
mov edx, dword [0xcf9370]
mov eax, dword [edx + 0x64]
test eax, eax
jne 0x52aadc
push 0xa88
call fcn.0051f400
add esp, 4
test al, al
je 0x52ab1a
mov eax, dword [0xcf9370]
mov ecx, dword [eax + 0x64]
test ecx, ecx
je 0x52ab1a
mov eax, dword [0xa4f274]
push 0x8dd885
test eax, eax
je 0x52aaff
mov ecx, dword [ebp + 0x4eec]
mov edx, dword [ebp + 0x4ee8]
push ecx
push edx
push 0x66b1ac
jmp 0x52ab12
mov eax, dword [ebp + 0x4eec]
mov ecx, dword [ebp + 0x4ee8]
push eax
push ecx
push 0x66b1a4
call fcn.0047af10
add esp, 0x10
mov eax, dword [esp + 0x18]
add ebx, 0x88
inc eax
cmp eax, 0xa
mov dword [esp + 0x18], eax
jl 0x52a106
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x52a0fa
mov eax, dword [0xced10c]
lea eax, [eax + eax*4]
lea edx, [eax - 5]
cmp edx, eax
mov dword [esp + 0x14], edx
jge 0x52ad0d
mov ecx, edx
lea eax, [edx + edx*4]
shl ecx, 4
add ecx, edx
shl eax, 1
lea edx, [ecx + ecx*4]
shl edx, 4
lea ebx, [edx + ebp + 0xe8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], 0xa
mov eax, dword [ebx - 8]
test eax, eax
je 0x52acd1
mov eax, dword [0xcf95d4]
mov ecx, dword [0xcf95d0]
push eax
lea edx, [ebx - 0x18]
push ecx
push edx
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x52acd1
mov eax, dword [ebx - 8]
mov ecx, ebp
push eax
call fcn.0053bf30
test eax, eax
je 0x52acd1
mov eax, dword [0xcf50e4]
test eax, eax
jne 0x52acd1
mov ax, word [ebx + 0x39]
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
xor ecx, ecx
mov cl, ah
test cl, cl
jbe 0x52ac35
xor edx, edx
xor ecx, ecx
mov dx, word [ebx + 0x3b]
mov cx, word [ebx + 0x3d]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
xor edx, edx
lea ecx, [esi + esi*4]
mov dx, word [ebx + 0x3f]
and eax, 0xffff
lea ecx, [edi + ecx*2]
mov dword [esp + 0x54], edx
mov edx, ecx
push eax
shl edx, 4
add edx, ecx
mov eax, dword [ebp + edx*8 + 0xd4]
lea ecx, [ebp + edx*8]
push eax
xor eax, eax
mov ecx, dword [ecx + 0xd0]
mov ax, word [ebx + 0x22]
lea edx, [esp + 0x54]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00534870
mov ecx, dword [0xcf481c]
mov eax, dword [ebx - 8]
test ecx, ecx
mov dword [esp + 0x1c], eax
jne 0x52ac50
mov ecx, dword [esp + 0x10]
push 0xffffffffffffffff
push ecx
push eax
jmp 0x52acc9
mov eax, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x266], edx
mov ecx, 0x4c
mov dword [esp + 0x26a], edx
lea esi, [esp + 0x1ec]
mov dword [esp + 0x26e], edx
lea edi, [esp + 0x1b14]
mov byte [esp + 0x272], dl
mov dword [esp + 0x1b10], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x1b10]
lea edx, [esp + 0x58]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
mov edx, dword [ecx + 4]
push eax
mov ecx, 0xcf4800
mov dword [esp + 0x40], edx
call fcn.0053cd20
mov ecx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x14]
push eax
push ecx
call fcn.0047b6d0
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x30]
add ebx, 0x88
inc ecx
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], eax
jne 0x52ab83
mov edx, dword [0xced10c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
inc ecx
lea edx, [edx + edx*4]
mov dword [esp + 0x14], ecx
cmp ecx, edx
jl 0x52ab77
mov eax, dword [esp + 0x40]
inc eax
cmp eax, 4
mov dword [esp + 0x40], eax
jl 0x529039
mov dword [esp + 0x14], 0
lea ebx, [ebp + 0x5090]
mov eax, dword [ebp + 0x6dc4]
test eax, eax
je 0x52ae32
push eax
mov ecx, ebp
call fcn.0053bf30
test eax, eax
je 0x52ae32
mov ecx, dword [ebp + 0x6dc4]
xor eax, eax
mov dword [esp + 0x266], eax
mov dword [esp + 0x1b10], ecx
mov dword [esp + 0x26a], eax
mov ecx, 0x4c
mov dword [esp + 0x26e], eax
lea esi, [esp + 0x1ec]
lea edi, [esp + 0x1b14]
mov byte [esp + 0x272], al
lea edx, [esp + 0x1b10]
lea eax, [esp + 0x58]
rep movsd dword es:[edi], dword [esi]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x84]
cmp ecx, edx
jne 0x52ae32
mov eax, dword [ebp + 0x6dc4]
xor edx, edx
mov dword [esp + 0x17fa], edx
mov ecx, 0x4c
mov dword [esp + 0x17fe], edx
lea esi, [esp + 0x1780]
mov dword [esp + 0x1802], edx
lea edi, [esp + 0x31f0]
mov byte [esp + 0x1806], dl
mov dword [esp + 0x31ec], eax
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x31ec]
lea edx, [esp + 0xcc]
push ecx
push edx
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [0x6d6868]
mov dword [esp + 0x48], edx
mov edx, dword [eax + 0x7c]
test ecx, edx
je 0x52ae32
mov edx, dword [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0053c880
mov eax, dword [ebx]
test eax, eax
je 0x52b211
push eax
mov ecx, ebp
call fcn.0053bf30
test eax, eax
je 0x52b211
mov eax, dword [ebx]
xor ecx, ecx
mov dword [esp + 0x159a], ecx
lea esi, [esp + 0x1520]
mov dword [esp + 0x159e], ecx
lea edi, [esp + 0x3324]
mov dword [esp + 0x15a2], ecx
mov dword [esp + 0x1c], eax
mov byte [esp + 0x15a6], cl
mov ecx, 0x4c
mov dword [esp + 0x3320], eax
lea edx, [esp + 0x3320]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xbc]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, dword [eax]
lea esi, [esp + 0x12c0]
lea edi, [esp + 0x30bc]
mov edx, dword [eax + 4]
xor eax, eax
mov ax, word [ecx + 0x5c]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
xor eax, eax
mov dword [esp + 0x133a], eax
mov dword [esp + 0x30b8], ecx
mov dword [esp + 0x133e], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x1342], eax
mov ecx, 0x4c
mov byte [esp + 0x1346], al
lea edx, [esp + 0x30b8]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0xac]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
lea esi, [esp + 0xf30]
lea edi, [esp + 0x2e54]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
xor ecx, ecx
mov eax, dword [eax + 0x74]
mov dword [esp + 0xfaa], ecx
mov dword [esp + 0xfae], ecx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0xfb2], ecx
mov byte [esp + 0xfb6], cl
mov ecx, 0x4c
mov dword [esp + 0x2e50], edx
mov dword [esp + 0x30], eax
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x2e50]
lea ecx, [esp + 0x9c]
push eax
push ecx
mov ecx, ebp
call fcn.00474ae0
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
mov eax, dword [ebx + 8]
test eax, eax
je 0x52afaa
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x52afaa
sub eax, dword [esp + 0x30]
lea esi, [eax + eax*2]
lea eax, [eax + esi*4]
mov dword [esp + 0x24], eax
mov eax, dword [edx + 0x78]
sub ecx, eax
mov eax, ecx
lea ecx, [eax + eax*2]
lea edx, [eax + ecx*4]
mov dword [esp + 0x18], edx
jmp 0x52afb4
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax*4 + 0xa43b20]
test ecx, ecx
jne 0x52b0a8
mov eax, dword [str..BitmapsItem_]
mov ecx, dword [0x656008]
mov edx, dword [0x65600c]
mov dword [esp + 0x124], eax
mov eax, dword [0x656010]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x130], eax
mov ecx, 0x2e
xor eax, eax
lea edi, [esp + 0x134]
mov dword [esp + 0x12c], edx
mov edx, dword [esp + 0x10]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x60]
push 0xa
push ecx
push edx
call fcn.0061d6c5
mov edi, str..wsa
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x6c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push eax
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea edx, [esp + 0x134]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x74]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x138]
lea eax, [esi*4 + 0xa2e594]
push eax
push 0xa257d8
push 0
push 0
push ecx
call fcn.005a5e90
lea ecx, [esi*4 + 0xa43b20]
add esp, 0x28
mov dword [ecx], eax
mov eax, esi
test eax, eax
jle 0x52b211
mov ecx, dword [eax*4 + 0xa43b20]
lea eax, [eax*4 + 0xa43b20]
test ecx, ecx
mov dword [esp + 0x30], eax
je 0x52b211
mov edx, dword [0xcf95d4]
mov eax, dword [0xcf95d0]
mov edi, dword [sym.imp.USER32.dll_PtInRect]
lea esi, [ebx - 0x10]
push edx
push eax
push esi
call edi
test eax, eax
je 0x52b0fe
mov eax, dword [0xcf50e4]
test eax, eax
jne 0x52b0fe
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, ebp
call fcn.0053c4a0
jmp 0x52b137
mov eax, dword [ebx]
test eax, eax
je 0x52b137
cmp eax, 0x64
je 0x52b137
cmp eax, 0x65
je 0x52b137
cmp eax, 0x66
je 0x52b137
cmp eax, 0x67
je 0x52b137
cmp eax, 0x68
je 0x52b137
mov eax, dword [ebx + 0x14]
test eax, eax
jne 0x52b137
cmp word [ebx + 0x45], 0
je 0x52b137
mov edx, dword [esp + 0x14]
mov ecx, ebp
push edx
call fcn.0053c690
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
mov ecx, dword [eax*4 + 0xa2e594]
mov eax, dword [edx]
mov edx, dword [ebx - 0xc]
push ecx
mov ecx, dword [eax]
mov eax, dword [esi]
push ecx
mov ecx, dword [esp + 0x20]
add edx, ecx
push edx
mov edx, dword [esp + 0x30]
add eax, edx
push eax
call dword [0xd36aac]
mov ecx, dword [0xcf95d4]
mov edx, dword [0xcf95d0]
add esp, 0x10
push ecx
push edx
push esi
call edi
test eax, eax
je 0x52b211
mov eax, dword [0xcf50e4]
test eax, eax
jne 0x52b211
mov eax, dword [ebx]
mov ecx, ebp
push eax
call fcn.0053bf30
test eax, eax
je 0x52b211
mov eax, dword [ebx]
test eax, eax
je 0x52b211
cmp eax, 0x64
je 0x52b211
cmp eax, 0x65
je 0x52b211
cmp eax, 0x66
je 0x52b211
cmp eax, 0x67
je 0x52b211
cmp eax, 0x68
je 0x52b211
mov ax, word [ebx + 0x31]
xor ecx, ecx
mov cl, ah
test cl, cl
jbe 0x52b211
xor edx, edx
and eax, 0xffff
mov dx, word [ebx + 0x33]
push eax
mov eax, dword [ebx - 0xc]
mov dword [esp + 0x50], edx
xor edx, edx
xor ecx, ecx
mov dx, word [ebx + 0x37]
mov cx, word [ebx + 0x35]
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x1c]
add eax, edx
mov dword [esp + 0x54], ecx
mov ecx, dword [esi]
push eax
mov eax, dword [esp + 0x2c]
lea edx, [esp + 0x54]
add ecx, eax
xor eax, eax
mov ax, word [ebx + 0x1a]
push ecx
push edx
push eax
mov ecx, ebp
call fcn.00534870
mov eax, dword [esp + 0x14]
add ebx, 0x74
inc eax
cmp eax, 7
mov dword [esp + 0x14], eax
jl 0x52ad2d
mov edi, 0xc8
lea esi, [ebp + 0x5090]
mov dword [esp + 0x18], edi
mov dword [esp + 0x30], esi
mov eax, dword [esi]
test eax, eax
je 0x52b32a
push eax
mov ecx, ebp
call fcn.0053bf30
test eax, eax
je 0x52b32a
mov ecx, dword [0xcf95d4]
mov edx, dword [0xcf95d0]
push ecx
lea eax, [esi - 0x10]
push edx
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x52b32a
mov eax, dword [0xcf50e4]
test eax, eax
jne 0x52b32a
mov eax, dword [0xcf9324]
mov ebx, dword [esi]
test eax, eax
je 0x52b32a
mov eax, dword [0xcf481c]
test eax, eax
jne 0x52b2a9
push 0xffffffffffffffff
push edi
push ebx
call fcn.0047b6d0
add esp, 0xc
jmp 0x52b32a
xor ecx, ecx
lea esi, [esp + 0x1ec]
mov dword [esp + 0x266], ecx
lea edi, [esp + 0x1b14]
mov dword [esp + 0x26a], ecx
mov dword [esp + 0x1b10], ebx
mov dword [esp + 0x26e], ecx
lea edx, [esp + 0x1b10]
mov byte [esp + 0x272], cl
mov ecx, 0x4c
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x58]
push edx
push eax
mov ecx, ebp
call fcn.00474ae0
mov ecx, eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x84]
mov edx, dword [ecx + 4]
push eax
mov ecx, 0xcf4800
mov dword [esp + 0x4c], edx
call fcn.0053cd20
push eax
mov eax, dword [esp + 0x1c]
push eax
push ebx
call fcn.0047b6d0
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
add esp, 0xc
add esi, 0x74
inc edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x18], edi
lea ecx, [edi - 0xc8]
cmp ecx, 7
jl 0x52b239
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3b70
ret