Function at 0x432220
Capabilities:
Write file on windows

Disassembly:
sub esp, 0x210
push ebx
xor eax, eax
push ebp
push esi
mov dword [esp + 0x38], eax
push edi
xor ebx, ebx
mov dword [esp + 0x40], eax
mov ecx, 0x3a
lea edi, [esp + 0x4c]
mov dword [esp + 0x48], ebx
mov edx, dword [0x8e53fc]
rep stosd dword es:[edi], eax
xor ecx, ecx
lea edi, [esp + 0x138]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x28], ecx
push edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], ecx
mov ecx, 0x3a
rep stosd dword es:[edi], eax
mov dword [esp + 0x24], ebx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov dword [0x5192f0], eax
mov eax, dword [0x8e53fc]
push esi
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
mov cl, byte [0x8e5390]
mov eax, 0x10
test cl, 8
je 0x4322e3
cmp dword [0x5192f0], eax
jge 0x432318
mov ecx, dword [0x8e53fc]
push eax
push 0x51815c
push 0x51a9a0
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
cmp dword [0x8e5410], ebx
je 0x432318
cmp dword [0x5192f0], eax
je 0x432318
mov edx, dword [0x8e53fc]
push eax
push 0x51815c
push 0x51a96c
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 2
pop ebx
add esp, 0x210
ret
mov ebp, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
push 0xc4
push 0x40
call ebp
mov ebx, dword [sym.imp.KERNEL32.dll_GlobalLock]
push eax
call ebx
xor esi, esi
mov dword [0x5d28e0], eax
cmp eax, esi
jne 0x432360
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push str.GlobalAllocPtr_Error___DIRECT_DRAW__
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov dword [eax + 0x9c], esi
mov ecx, dword [0x5d28e0]
push esi
push 0x516084
mov dword [ecx + 0xa0], esi
mov edx, dword [0x5d28e0]
mov dword [edx + 0x94], 0x280
mov eax, dword [0x5d28e0]
mov dword [eax + 0x98], 0x1e0
mov ecx, dword [0x5d28e0]
add ecx, 4
mov dword [0xe823d4], 0x40
push ecx
push esi
mov dword [0xe823d0], 0x30
call sub.DDRAW.dll_DirectDrawCreateEx
test eax, eax
je 0x4323ff
mov edx, dword [0x5d28e0]
push esi
add edx, 4
push 0x516084
push edx
push 2
call sub.DDRAW.dll_DirectDrawCreateEx
test eax, eax
je 0x4323ff
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push str.DirectDrawCreateEx_Error
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov eax, dword [0x8e5410]
mov ecx, dword [0x5d28e0]
cmp eax, esi
mov eax, dword [ecx + 4]
mov edx, dword [eax]
je 0x4325a7
mov ecx, dword [0x8e53fc]
push 8
push ecx
push eax
call dword [edx + 0x50]
test eax, eax
je 0x43244e
mov edx, dword [0x8e53fc]
push 0x10
push 0x51815c
push str.SetCooperativeLevel_Error
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov edx, dword [0x5d28e0]
mov ecx, 0x1f
xor eax, eax
mov esi, 0x7c
lea edi, [edx + 0x14]
push 0
rep stosd dword es:[edi], eax
mov eax, dword [0x5d28e0]
mov dword [eax + 0x14], esi
mov ecx, dword [0x5d28e0]
mov dword [ecx + 0x18], 1
mov edx, dword [0x5d28e0]
mov dword [edx + 0x7c], 0x2200
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 4]
lea edi, [eax + 8]
add eax, 0x14
push edi
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x18]
test eax, eax
jne 0x432667
mov ecx, dword [0x5d28e0]
push 0
mov eax, dword [ecx + 4]
add ecx, 0x10
push ecx
push 0
mov edx, dword [eax]
push eax
call dword [edx + 0x10]
test eax, eax
je 0x4324e7
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a8ec
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 0x10]
mov ecx, dword [0x8e53fc]
push ecx
push 0
mov edx, dword [eax]
push eax
call dword [edx + 0x20]
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x70]
mov edx, dword [0x5d28e0]
mov ecx, 0x1f
xor eax, eax
push 0
lea edi, [edx + 0x14]
rep stosd dword es:[edi], eax
mov eax, dword [0x5d28e0]
mov dword [eax + 0x14], esi
mov ecx, dword [0x5d28e0]
mov dword [ecx + 0x18], 7
mov edx, dword [0x5d28e0]
mov dword [edx + 0x7c], 0x2040
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 0x94]
mov dword [eax + 0x20], ecx
mov eax, dword [0x5d28e0]
mov edx, dword [eax + 0x98]
mov dword [eax + 0x1c], edx
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 4]
lea esi, [eax + 0xc]
add eax, 0x14
push esi
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x18]
test eax, eax
je 0x4326d6
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a8cc
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov ecx, dword [0x8e53fc]
push 0x51
push ecx
push eax
call dword [edx + 0x50]
test eax, eax
je 0x4325de
mov edx, dword [0x8e53fc]
push 0x10
push 0x51815c
push str.SetCooperativeLevel_Error
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov eax, dword [0x5d28e0]
mov dword [0x5192f0], 0x10
push esi
push esi
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x98]
mov eax, dword [eax + 0x94]
push 0x10
mov edx, dword [ecx]
push edi
push eax
push ecx
call dword [edx + 0x54]
mov edx, dword [0x5d28e0]
mov ecx, 0x1f
xor eax, eax
push esi
lea edi, [edx + 0x14]
rep stosd dword es:[edi], eax
mov eax, dword [0x5d28e0]
mov dword [eax + 0x14], 0x7c
mov ecx, dword [0x5d28e0]
mov dword [ecx + 0x18], 0x21
mov edx, dword [0x5d28e0]
mov dword [edx + 0x7c], 0x2218
mov eax, dword [0x5d28e0]
mov dword [eax + 0x28], 1
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 4]
lea edi, [eax + 8]
add eax, 0x14
push edi
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x18]
test eax, eax
je 0x43268c
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a8a4
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov ecx, dword [0x5d28e0]
mov dword [esp + 0x38], 4
mov eax, dword [ecx + 8]
add ecx, 0xc
push ecx
lea ecx, [esp + 0x3c]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x30]
test eax, eax
je 0x4326d8
mov edx, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a8cc
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
xor esi, esi
cmp dword [0x5192f0], 8
je 0x4327d8
mov edx, dword [0x5d28e0]
cmp dword [edx + 0xc], esi
jne 0x4326fd
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov ecx, 8
xor eax, eax
lea edi, [edx + 0x5c]
rep stosd dword es:[edi], eax
mov eax, dword [0x5d28e0]
mov dword [eax + 0x5c], 0x20
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 0xc]
add ecx, 0x5c
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x54]
test eax, eax
je 0x432739
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 0x6c]
mov dword [0x5d4560], ecx
mov edx, dword [eax + 0x70]
mov dword [0x5d5bb8], edx
mov eax, dword [eax + 0x74]
push ecx
mov dword [0x5d4540], eax
call fcn.00439f90
mov edx, dword [0x5d5bb8]
mov ecx, 8
sub ecx, eax
push edx
mov dword [0x5d3d28], ecx
call fcn.00439f90
mov edx, dword [0x5d4540]
mov ecx, 8
sub ecx, eax
push edx
mov dword [0x5d5bb0], ecx
call fcn.00439f90
mov edx, dword [0x5d4540]
mov ecx, 8
sub ecx, eax
push edx
mov dword [0x5d4138], ecx
call fcn.00439f90
mov edi, eax
mov eax, dword [0x5d5bb8]
push eax
call fcn.00439f90
mov ecx, dword [0x5d4540]
add edi, eax
push ecx
mov dword [0x5d4880], edi
call fcn.00439f90
add esp, 0x18
mov dword [0x5d4c84], eax
mov dword [0x5d4c88], esi
cmp dword [0x5192f0], 0x10
jne 0x4328aa
push 0x600
push 0x40
call ebp
push eax
call ebx
mov edx, dword [0x5d28e0]
mov dword [edx + 0xc0], eax
mov eax, dword [0x5d28e0]
cmp dword [eax + 0xc0], esi
jne 0x432830
mov ecx, dword [0x8e53fc]
push 0x10
push 0x51815c
push str.GlobalAllocPtr_Error___PALDATA__
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x210
ret
xor edx, edx
xor eax, eax
mov ecx, dword [0x5d3d28]
mov esi, edx
sar esi, cl
mov ecx, dword [0x5d4880]
add eax, 6
shl esi, cl
mov ecx, dword [0x5d28e0]
mov ecx, dword [ecx + 0xc0]
mov word [ecx + eax - 2], si
mov ecx, dword [0x5d5bb0]
mov esi, edx
sar esi, cl
mov ecx, dword [0x5d4c84]
shl esi, cl
mov ecx, dword [0x5d28e0]
mov ecx, dword [ecx + 0xc0]
mov word [ecx + eax - 4], si
mov ecx, dword [0x5d4138]
mov esi, edx
sar esi, cl
mov ecx, dword [0x5d4c88]
shl esi, cl
mov ecx, dword [0x5d28e0]
inc edx
cmp eax, 0x600
mov ecx, dword [ecx + 0xc0]
mov word [ecx + eax - 6], si
jl 0x432834
jmp 0x4328b6
mov edx, dword [0x5d28e0]
mov dword [edx + 0xc0], esi
mov al, byte [0x5d5b98]
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
mov edi, 1
cmp al, 1
mov dword [0x5d65bc], edi
jg 0x4328fb
cmp al, 1
mov byte [0x5d4564], al
jge 0x4328fb
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a834
push eax
call ebp
mov al, 1
mov byte [0x5d4564], 1
mov byte [0x5d5b98], al
test byte [0x8e5390], 1
je 0x432912
mov al, 1
mov byte [0x5d4564], 1
mov byte [0x5d5b98], al
mov edx, dword [0x5d28e0]
xor cl, cl
test dword [edx + 0x60], 0xe0001
je 0x432925
mov cl, 1
mov esi, dword [edx + 0x64]
xor ebx, ebx
cmp esi, ebx
je 0x432930
mov cl, 1
mov esi, dword [edx + 0x68]
cmp esi, dword [0x5192f0]
jne 0x43293f
test cl, cl
je 0x432957
mov ecx, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a834
push ecx
jmp 0x432a53
cmp al, 1
jle 0x432a63
mov eax, dword [edx + 4]
add edx, 0x9c
push edx
push 0x516054
mov ecx, dword [eax]
push eax
call dword [ecx]
test eax, eax
je 0x432a70
mov edx, dword [0x8e53fc]
push 0x10
push 0x51815c
push str.Direct3D
push edx
call ebp
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 0xa0]
cmp eax, ebx
je 0x4329b1
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [0x5d28e0]
mov dword [eax + 0xa0], ebx
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 0x9c]
cmp eax, ebx
je 0x4329d2
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [0x5d28e0]
mov dword [eax + 0x9c], ebx
mov ecx, dword [0x5d28e0]
push ebx
xor eax, eax
push 0x80
push 2
mov dword [esp + 0x22], eax
push ebx
mov dword [ecx + 0xbc], ebx
mov dx, word [0x51a80c]
push ebx
mov dword [esp + 0x2e], eax
push 0x40000000
push str.dataupdate.dat
mov word [esp + 0x30], dx
mov byte [esp + 0x3a], al
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x432a41
lea ecx, [esp + 0x10]
push ebx
push ecx
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea edx, [esp + 0x1c]
push ecx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a834
push eax
call ebp
mov byte [0x5d4564], 1
mov byte [0x5d5b98], 1
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x210
ret
cmp byte [0x5d5b98], 4
jl 0x432aa7
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 0x9c]
lea esi, [eax + 0xa0]
mov eax, dword [eax + 0xc]
push esi
mov edx, dword [ecx]
push eax
push 0x516024
push ecx
call dword [edx + 0x10]
test eax, eax
jne 0x432aa7
mov byte [0x5d4564], 4
jmp 0x432b1b
cmp byte [0x5d5b98], 3
jl 0x432ade
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 0x9c]
lea esi, [eax + 0xa0]
mov eax, dword [eax + 0xc]
push esi
mov edx, dword [ecx]
push eax
push 0x516034
push ecx
call dword [edx + 0x10]
test eax, eax
jne 0x432ade
mov byte [0x5d4564], 3
jmp 0x432b1b
cmp byte [0x5d5b98], 2
jl 0x432990
mov eax, dword [0x5d28e0]
mov ecx, dword [eax + 0x9c]
lea esi, [eax + 0xa0]
mov eax, dword [eax + 0xc]
push esi
mov edx, dword [ecx]
push eax
push 0x516044
push ecx
call dword [edx + 0x10]
test eax, eax
jne 0x432990
mov byte [0x5d4564], 2
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 0xa0]
lea ecx, [esp + 0x134]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0xc]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
mov dword [edx + 0xbc], ebx
mov eax, dword [esp + 0x134]
test ah, 4
je 0x432b7d
mov eax, dword [0x5d28e0]
push edi
push 0x29
mov eax, dword [eax + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
mov dword [edx + 0xbc], edi
mov eax, dword [0x5d28e0]
push ebx
push 0x88
mov eax, dword [eax + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push ebx
push 0x89
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push ebx
push 0x10
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push ebx
push 7
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push ebx
push 4
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push ebx
push 0xe
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push edi
push 0x1b
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push edi
push 0x16
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push 4
push 4
push ebx
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push 2
push 5
push ebx
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
push ebx
push 6
push ebx
mov eax, dword [edx + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x94]
test eax, eax
jne 0x432990
mov eax, dword [0x5d28e0]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov edx, dword [eax + 0x94]
mov dword [esp + 0x28], edx
mov ecx, dword [eax + 0x98]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x3f800000
mov eax, dword [eax + 0xa0]
lea ecx, [esp + 0x20]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x34]
test eax, eax
jne 0x432990
mov edx, dword [0x5d28e0]
mov eax, dword [edx + 0xa0]
lea edx, [esp + 0x48]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
test eax, eax
jl 0x432990
mov eax, dword [0x5d28e0]
mov ecx, dword [esp + 0x10c]
add eax, 0xa4
mov dword [eax], ecx
mov edx, dword [esp + 0x110]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x114]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x118]
mov dword [eax + 0xc], edx
mov eax, dword [0x5d28e0]
mov ecx, dword [esp + 0xa4]
mov dword [eax + 0xb4], ecx
mov edx, dword [0xe823d4]
mov eax, dword [0x5d28e0]
add edx, 2
mov word [eax + 0xb8], dx
mov ecx, dword [0xe823d0]
mov edx, dword [0x5d28e0]
add ecx, 2
mov word [edx + 0xba], cx
mov eax, dword [0x5d28e0]
mov cl, byte [eax + 0xb4]
movsx edx, word [eax + 0xb8]
movsx esi, word [eax + 0xba]
test cl, 2
je 0x432e38
mov word [eax + 0xb8], di
mov ecx, dword [0x5d28e0]
mov ax, word [ecx + 0xb8]
movsx ebp, ax
cmp edx, ebp
jle 0x432dfc
add eax, eax
mov word [ecx + 0xb8], ax
mov ecx, dword [0x5d28e0]
mov ax, word [ecx + 0xb8]
movsx ebp, ax
cmp edx, ebp
jg 0x432ddf
mov word [ecx + 0xba], di
mov eax, dword [0x5d28e0]
mov cx, word [eax + 0xba]
movsx edx, cx
cmp esi, edx
jle 0x432e32
add ecx, ecx
mov word [eax + 0xba], cx
mov eax, dword [0x5d28e0]
mov cx, word [eax + 0xba]
movsx edx, cx
cmp esi, edx
jg 0x432e16
mov ebp, dword [sym.imp.USER32.dll_MessageBoxA]
test byte [eax + 0xb4], 0x20
je 0x432e64
mov cx, word [eax + 0xb8]
mov dx, word [eax + 0xba]
cmp cx, dx
jle 0x432e5d
mov word [eax + 0xba], cx
jmp 0x432e64
mov word [eax + 0xb8], dx
push 0x800
push ebx
push 0x100
push 0x100
mov dword [esp + 0x20], ebx
call fcn.004332b0
mov edi, eax
add esp, 0x10
cmp edi, ebx
je 0x432f0c
xor esi, esi
mov eax, dword [0x5d28e0]
push edi
push ebx
mov eax, dword [eax + 0xa0]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x8c]
test eax, eax
jne 0x432edb
mov edx, dword [0x5d28e0]
mov eax, dword [edx + 0xa0]
lea edx, [esp + 0x10]
push edx
push ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x88]
test eax, eax
jne 0x432ee6
mov eax, dword [esp + 0x10]
cmp eax, ebx
jne 0x432ef1
mov eax, dword [eax]
push ebx
call dword [eax + 8]
inc esi
cmp esi, 8
jl 0x432e8c
jmp 0x432ef7
mov ecx, dword [edi]
push edi
call dword [ecx + 8]
jmp 0x432990
mov edx, dword [edi]
push edi
call dword [edx + 8]
jmp 0x432990
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [edi]
push edi
call dword [edx + 8]
cmp esi, 8
jge 0x432990
mov dword [0x5d5ba0], esi
mov al, byte [0x5d4564]
mov cl, byte [0x5d5b98]
cmp al, cl
je 0x432a63
cmp al, 3
jne 0x432f3c
mov eax, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a7b0
push eax
call ebp
mov al, byte [0x5d4564]
cmp al, 2
jne 0x432f55
mov ecx, dword [0x8e53fc]
push 0x10
push 0x51815c
push 0x51a768
push ecx
call ebp
push ebx
push 0x80
push 2
push ebx
push ebx
push 0x40000000
push str.dataupdate.dat
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x432fb8
movsx edx, byte [0x5d4564]
push edx
lea eax, [esp + 0x18]
push 0x518480
push eax
call fcn.0050543d
add esp, 0xc
lea ecx, [esp + 0x10]
lea edi, [esp + 0x14]
xor eax, eax
push ebx
push ecx
or ecx, 0xffffffff
lea edx, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push edx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [0x5d4564]
pop edi
pop esi
mov byte [0x5d5b98], al
pop ebp
xor al, al
pop ebx
add esp, 0x210
ret