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

Disassembly:
sub esp, 0xdc
push ebp
mov ebp, dword [esp + 0xec]
push esi
xor esi, esi
mov dword [esp + 0x20], esi
mov dword [esp + 8], esi
cmp ebp, 8
jbe 0x435b29
pop esi
xor eax, eax
pop ebp
add esp, 0xdc
ret
cmp ebp, esi
push edi
jl 0x435b3c
lea ecx, [ebp + 1]
xor eax, eax
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xec]
push ebx
lea eax, [esp + 0x48]
push eax
push 0x54
push ecx
call dword [sym.imp.GDI32.dll_GetObjectA]
movzx edi, word [esp + 0x6e]
mov ecx, dword [esp + 0x64]
mov eax, edi
imul eax, ecx
add eax, 7
cdq
and edx, 7
add edx, eax
mov eax, dword [esp + 0x54]
sar edx, 3
sub eax, edx
mov dword [esp + 0x34], eax
lea eax, [edi - 1]
cmp eax, 0x1f
ja case.0x435b90.5
movzx eax, byte [eax + 0x436188]
mov edi, dword [esp + 0xf4]
jmp dword [eax*4 + 0x436174]
push esi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
lea ecx, [eax + eax*2]
push ecx
call fcn.00525c36
push 0x2c
lea edx, [esp + 0xc8]
push esi
push edx
mov ebx, eax
call fcn.00559e10
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0x78]
add esp, 0x10
cmp eax, esi
mov ecx, 1
mov edx, 0x18
mov dword [esp + 0xc0], 0x28
mov dword [esp + 0xc8], eax
mov word [esp + 0xcc], cx
mov word [esp + 0xce], dx
mov dword [esp + 0xd0], esi
mov dword [esp + 0x14], esi
jle 0x435ccf
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xf0]
push 0
lea eax, [esp + 0xc4]
push eax
mov eax, dword [esp + 0x3c]
push ebx
push 1
push ecx
push edx
push eax
call dword [sym.imp.GDI32.dll_GetDIBits]
cmp dword [esp + 0x64], 0
mov esi, ebx
mov dword [esp + 0x24], 0
jle 0x435cbc
mov cl, byte [esi]
mov dl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
mov byte [esp + 0x1c], cl
mov byte [esp + 0x20], dl
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
push edx
inc esi
push 0
mov byte [esp + 0x24], al
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ebp
push eax
push ecx
push edx
lea eax, [esp + 0x44]
push eax
inc esi
call fcn.00435a30
add esp, 0x20
cmp dword [esp + 0x10], edi
jbe 0x435cad
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x14]
push edx
push ebp
call fcn.00435880
add esp, 0xc
cmp dword [esp + 0x10], edi
ja 0x435c91
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
jl 0x435c48
mov eax, dword [esp + 0x14]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x435c12
push ebx
call fcn.00525c2b
mov eax, dword [esp + 0x38]
add esp, 4
push eax
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
jmp 0x4360b4
cmp dword [esp + 0x70], 3
jne 0x435d08
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
jmp 0x435d17
mov ecx, 0x7c00
mov edx, 0x3e0
mov ebx, 0x1f
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], ecx
xor eax, eax
test cl, 1
jne 0x435e8d
inc eax
shr ecx, 1
cmp eax, 0x20
jb 0x435d25
mov dword [esp + 0x1c], 0xffffffff
mov ecx, edx
xor eax, eax
test cl, 1
jne 0x435e96
inc eax
shr ecx, 1
cmp eax, 0x20
jb 0x435d42
mov dword [esp + 0x20], 0xffffffff
mov ecx, ebx
xor eax, eax
nop
test cl, 1
jne 0x435e9f
inc eax
shr ecx, 1
cmp eax, 0x20
jb 0x435d60
mov dword [esp + 0x38], 0xffffffff
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00435a00
mov edx, dword [esp + 0x30]
push edx
mov ebx, eax
call fcn.00435a00
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
push eax
call fcn.00435a00
mov esi, dword [esp + 0x68]
add esp, 0xc
cmp dword [esp + 0x68], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0x14], 0
jle 0x4360b4
jmp 0x435dc0
cmp dword [esp + 0x64], 0
mov dword [esp + 0x24], 0
jle 0x435e71
movzx eax, word [esi]
lea ecx, [esp + 0x9c]
push ecx
movzx ecx, word [esp + 0x3c]
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x38]
and edx, eax
shr dx, cl
mov ecx, dword [esp + 0x48]
push 0
push ebp
shl dl, cl
add esi, 2
movzx ecx, dl
mov edx, dword [esp + 0x3c]
push ecx
movzx ecx, word [esp + 0x34]
and edx, eax
shr dx, cl
mov ecx, dword [esp + 0x58]
shl dl, cl
movzx ecx, dl
mov edx, dword [esp + 0x2c]
push ecx
movzx ecx, word [esp + 0x34]
and edx, eax
shr dx, cl
mov ecx, ebx
shl dl, cl
lea ecx, [esp + 0x40]
movzx eax, dl
push eax
push ecx
call fcn.00435a30
add esp, 0x20
cmp dword [esp + 0x10], edi
jbe 0x435e5e
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.00435880
add esp, 0xc
cmp dword [esp + 0x10], edi
ja 0x435e42
mov eax, dword [esp + 0x24]
inc eax
cmp eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
jl 0x435dd3
mov eax, dword [esp + 0x14]
add esi, dword [esp + 0x34]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x435dc0
jmp 0x4360b4
mov dword [esp + 0x1c], eax
jmp 0x435d3e
mov dword [esp + 0x20], eax
jmp 0x435d5b
mov dword [esp + 0x38], eax
jmp 0x435d79
cmp dword [esp + 0x68], 0
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x14], 0
jle 0x4360b4
nop
xor ebx, ebx
test ecx, ecx
jle 0x435f45
lea ebx, [ebx]
mov cl, byte [esi]
mov dl, byte [esi + 1]
inc esi
mov al, byte [esi + 1]
mov byte [esp + 0x1c], cl
mov byte [esp + 0x20], dl
lea ecx, [esp + 0x9c]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x14]
push edx
inc esi
push 0
mov byte [esp + 0x24], al
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ebp
push eax
push ecx
push edx
lea eax, [esp + 0x44]
push eax
inc esi
call fcn.00435a30
add esp, 0x20
cmp dword [esp + 0x10], edi
jbe 0x435f3c
lea esp, [esp]
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x14]
push edx
push ebp
call fcn.00435880
add esp, 0xc
cmp dword [esp + 0x10], edi
ja 0x435f20
mov ecx, dword [esp + 0x64]
inc ebx
cmp ebx, ecx
jl 0x435ed0
mov eax, dword [esp + 0x14]
add esi, dword [esp + 0x34]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x435ec0
jmp 0x4360b4
cmp dword [esp + 0x70], 3
jne 0x435f7f
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0x90]
jmp 0x435f8e
mov edx, 0xff0000
mov ebx, 0xff00
mov esi, 0xff
mov dword [esp + 0x30], esi
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x18], edx
xor eax, eax
lea esp, [esp]
test dl, 1
jne 0x4360d6
inc eax
shr edx, 1
cmp eax, 0x20
jb 0x435fa0
mov dword [esp + 0x1c], 0xffffffff
mov edx, ebx
xor eax, eax
lea ecx, [ecx]
test dl, 1
jne 0x4360df
inc eax
shr edx, 1
cmp eax, 0x20
jb 0x435fc0
mov dword [esp + 0x20], 0xffffffff
mov edx, esi
xor eax, eax
lea ecx, [ecx]
test dl, 1
jne 0x4360e8
inc eax
shr edx, 1
cmp eax, 0x20
jb 0x435fe0
or ebx, 0xffffffff
cmp dword [esp + 0x68], 0
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x14], 0
jle 0x4360b4
jmp 0x436010
mov dword [esp + 0x24], 0
test ecx, ecx
jle 0x43609d
mov eax, dword [esi]
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x14]
push edx
mov edx, eax
and edx, dword [esp + 0x38]
push 0
mov ecx, ebx
shr edx, cl
mov ecx, dword [esp + 0x2c]
push ebp
add esi, 4
push edx
mov edx, eax
and edx, dword [esp + 0x40]
and eax, dword [esp + 0x2c]
shr edx, cl
mov ecx, dword [esp + 0x30]
shr eax, cl
push edx
push eax
lea eax, [esp + 0x44]
push eax
call fcn.00435a30
add esp, 0x20
cmp dword [esp + 0x10], edi
jbe 0x43608c
jmp 0x436070
lea ecx, [esp + 0x9c]
push ecx
lea edx, [esp + 0x14]
push edx
push ebp
call fcn.00435880
add esp, 0xc
cmp dword [esp + 0x10], edi
ja 0x436070
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x64]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x436020
mov eax, dword [esp + 0x14]
add esi, dword [esp + 0x34]
inc eax
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
jl 0x436010
mov eax, dword [esp + 0x10]
cmp eax, edi
jbe 0x4360ef
lea eax, [esp + 0x28]
push eax
call fcn.00435930
add esp, 4
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0xdc
ret
mov dword [esp + 0x1c], eax
jmp 0x435fb9
mov dword [esp + 0x20], eax
jmp 0x435fd9
mov ebx, eax
jmp 0x435ff4
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea eax, [eax*4 + 4]
push eax
push 0
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
test esi, esi
jne 0x436115
lea ecx, [esp + 0x28]
push ecx
jmp 0x4360c1
mov edx, 0x300
mov word [esi], dx
mov ax, word [esp + 0x10]
lea ecx, [esp + 0x3c]
push ecx
mov word [esi + 2], ax
mov eax, dword [esp + 0x2c]
lea edx, [esi + 4]
push edx
push eax
mov dword [esp + 0x48], 0
call fcn.00435980
add esp, 0xc
push esi
call dword [sym.imp.GDI32.dll_CreatePalette]
push esi
push 0
mov edi, eax
call ebx
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esp + 0x28]
push ecx
call fcn.00435930
add esp, 4
pop ebx
mov eax, edi
pop edi
pop esi
pop ebp
add esp, 0xdc
ret
mov eax, dword [esp + 4]
push eax
call fcn.004383d0
add esp, 4
test eax, eax
jne 0x4361c2
ret
mov dword [esp + 4], eax
jmp 0x435b00
and al, 0x1c
add eax, 0xfffffff0
invalid
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x476596
invalid
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..JPG
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef74
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xa
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4765f1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..GIF
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef75
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xb
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47664c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..PCX
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef76
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xc
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4766a7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..TIF
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef77
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xd
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x476702
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..PNG
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef78
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xe
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47675d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..JNG
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef79
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xf
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4767b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..ICO
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef7a
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0x10
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x476813
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..TGA
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef7b
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0x11
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47686e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 8
push str..WBMP
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef7c
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0x12
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4768c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..WMF
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef7d
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0x13
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x476924
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 7
push str..J2K
lea ecx, [esp + 0x1c]
call fcn.00403470
lea ecx, [esp + 0x1c]
push 0xef7e
push ecx
call fcn.00430b20
add esp, 8
mov eax, dword [eax]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0x14
call fcn.00403470
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x47697f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 8
push str..JBG
lea ecx, [esp + 0x1c]
call fcn.00403470
call fcn.005322b0
xor ecx, ecx
cmp eax, ebx
setne cl
cmp ecx, ebx
jne 0x4769a9
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x18]
push ecx
push ebx
push ebp
push 0x1004
push ebx
push ebx
push 1
mov byte [esp + 0x6c], 0x15
call dword [sym.imp.GsUI.dll_showDwgOpenDialog]
add esp, 0x1c
cmp eax, 1
jne 0x476bdf
mov eax, dword [edi + 0x20]
lea edx, [esp + 0x38]
push edx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esp + 0x18]
cmp edx, ebx
jne 0x4769ff
xor eax, eax
jmp 0x476a0d
mov eax, edx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x476a04
sub eax, esi
push eax
push edx
mov ecx, 0x5ee7d0
call fcn.00403070
mov ecx, edi
call fcn.004755b0
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x20]
push edx
mov byte [edi + 0x98d], 1
call fcn.00430ce0
add esp, 8
mov eax, dword [esp + 0x1c]
push eax
mov ecx, 0x5ef3fc
mov byte [esp + 0x54], 0x16
call fcn.0042eb30
mov esi, dword [eax + 8]
cmp esi, 3
mov ecx, dword [0x5ee7e4]
mov dword [ecx + 0x350], esi
mov byte [edi + 0x955], bl
jg 0x476aaa
mov eax, dword [0x5ee7e4]
push ebx
lea ecx, [eax + 0x398]
push 0x587fe5
mov edi, eax
call fcn.00403070
mov dword [edi + 0x39c], 0xffffffff
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
push ebx
push edx
push eax
push ecx
mov ecx, dword [0x5ee7e4]
push esi
call fcn.00426ff0
jmp 0x476bba
mov ecx, edi
call fcn.00529085
fldz
mov ecx, dword [0x5ee7e4]
fst dword [esp + 0x24]
add ecx, 0x438
fstp dword [esp + 0x28]
call fcn.0047dcf0
mov eax, dword [esp + 0x18]
mov ecx, dword [0x5ee7e4]
lea edx, [esp + 0x24]
push edx
push eax
add ecx, 0x498
call fcn.00481b30
test al, al
je 0x476b68
mov ecx, dword [0x5ee7e4]
push 1
add ecx, 0x438
call fcn.0047d7a0
mov ecx, dword [0x5ee7e4]
push ebx
add ecx, 0x438
call fcn.0047e330
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x30]
push edx
call fcn.00481550
add esp, 8
mov eax, dword [eax + 4]
mov ecx, dword [0x5ee7e4]
push eax
add ecx, 0x3c0
mov byte [esp + 0x54], 0x17
call fcn.00403e00
lea ecx, [esp + 0x2c]
mov byte [esp + 0x50], 0x16
call fcn.00482540
mov ecx, edi
call fcn.00475a80
mov ecx, edi
call fcn.0046fff0
mov ecx, edi
call fcn.00472f20
mov ecx, edi
call fcn.0052909a
jmp 0x476bba
mov ecx, edi
call fcn.0052909a
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x24]
push str.Open_file_error:
push ecx
call fcn.004037f0
add esp, 0xc
mov eax, dword [eax]
push ebx
push ebx
push eax
mov byte [esp + 0x5c], 0x18
call fcn.00527120
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x50], 0x16
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x476bba
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
mov byte [esp + 0x50], 0x15
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x476bdf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x50], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x476c03
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov dword [esp + 0x50], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x476c27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret