joyce8/EMBER2024-capa huggingface dataset:
Function at 0x46c970
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov eax, dword [ebx + 0x78]
test al, 1
jne 0x46cb26
cmp dword [esp + 0x78], 0xd
jne 0x46cb16
or eax, 1
lea esi, [esp + 0x43]
mov dword [ebx + 0x78], eax
mov dword [esp + 4], esi
mov dword [esp + 8], 0xd
mov dword [esp], ebx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c350
mov dword [esp], ebx
mov esi, eax
lea eax, [esp + 0x47]
mov dword [esp + 4], eax
call fcn.0046c350
movzx edx, byte [esp + 0x4b]
movzx ebp, byte [esp + 0x4f]
mov dword [ebx + 0x104], esi
mov byte [ebx + 0x15c], dl
mov edi, eax
movzx eax, dl
mov dword [esp + 0x30], eax
movzx eax, byte [esp + 0x4c]
mov dword [ebx + 0x108], edi
movzx ecx, al
cmp al, 4
mov dword [esp + 0x34], ecx
movzx ecx, byte [esp + 0x4d]
mov byte [ebx + 0x15b], al
mov dword [esp + 0x38], ecx
movzx ecx, byte [esp + 0x4e]
mov dword [esp + 0x3c], ecx
movzx ecx, byte [esp + 0x4f]
mov byte [ebx + 0x158], cl
movzx ecx, byte [esp + 0x4e]
mov byte [ebx + 0x270], cl
movzx ecx, byte [esp + 0x4d]
mov byte [ebx + 0x290], cl
je 0x46caf4
cmp al, 6
je 0x46cad0
cmp al, 2
je 0x46cb05
mov byte [ebx + 0x15f], 1
mov eax, 1
imul eax, edx
cmp al, 7
mov byte [ebx + 0x15e], al
ja 0x46cae9
movzx eax, al
imul eax, esi
add eax, 7
shr eax, 3
mov dword [ebx + 0x114], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
call fcn.00461530
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 4
imul eax, edx
mov byte [ebx + 0x15f], 4
cmp al, 7
mov byte [ebx + 0x15e], al
jbe 0x46ca74
shr al, 3
movzx eax, al
imul eax, esi
jmp 0x46ca80
mov byte [ebx + 0x15f], 2
mov eax, 2
jmp 0x46ca67
mov byte [ebx + 0x15f], 3
mov eax, 3
jmp 0x46ca67
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459bb0
mov dword [esp + 4], str.out_of_place
mov dword [esp], ebx
call fcn.00459bb0
lea esi, [esi]
lea edi, [edi]
Function at 0x46cb40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x33c
mov ebx, dword [esp + 0x350]
mov ecx, dword [esp + 0x358]
mov edx, dword [ebx + 0x78]
test dl, 1
je 0x46cd99
test dl, 2
jne 0x46cd89
test dl, 4
jne 0x46cbd3
or edx, 2
test byte [ebx + 0x15b], 2
mov dword [ebx + 0x78], edx
je 0x46cc00
cmp ecx, 0x300
ja 0x46cb9f
mov eax, ecx
mov edx, 0xaaaaaaab
mul edx
shr edx, 1
lea eax, [edx + edx*2]
cmp ecx, eax
je 0x46cc27
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.0046c720
cmp byte [ebx + 0x15b], 3
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
je 0x46cda9
call fcn.00459c00
add esp, 0x33c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x33c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], ecx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.ignored_in_grayscale_PNG
call fcn.00459c00
add esp, 0x33c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, ecx
mov ebp, 0x55555556
imul ebp
sar ecx, 0x1f
lea eax, [esp + 0x30]
sub edx, ecx
mov dword [esp + 0x18], edx
je 0x46cd80
mov esi, dword [esp + 0x18]
mov ebp, eax
mov dword [esp + 0x1c], eax
lea edi, [esi + esi*2]
add edi, eax
lea esi, [esp + 0x2d]
mov dword [esp + 8], 3
add ebp, 3
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c4f0
movzx edx, byte [esp + 0x2d]
mov byte [ebp - 3], dl
movzx edx, byte [esp + 0x2e]
mov byte [ebp - 2], dl
movzx edx, byte [esp + 0x2f]
mov byte [ebp - 1], dl
cmp ebp, edi
jne 0x46cc56
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
mov eax, dword [esp + 0x18]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x354]
mov dword [esp + 4], eax
call fcn.00461cd0
cmp word [ebx + 0x154], 0
je 0x46cd26
mov esi, dword [esp + 0x354]
xor ecx, ecx
mov word [ebx + 0x154], cx
test esi, esi
je 0x46cd70
mov eax, dword [esp + 0x354]
xor edx, edx
mov word [eax + 0x16], dx
mov dword [esp + 4], str.tRNS_must_be_after
mov dword [esp], ebx
call fcn.00459c00
mov eax, dword [esp + 0x354]
mov eax, dword [eax + 8]
test al, 0x40
jne 0x46cd50
test al, 0x20
je 0x46cbc8
mov dword [esp + 4], str.bKGD_must_be_after
mov dword [esp], ebx
call fcn.00459c00
jmp 0x46cbc8
mov edi, dword [esp + 0x354]
test edi, edi
je 0x46cbc8
mov eax, dword [esp + 0x354]
mov eax, dword [eax + 8]
test al, 0x10
je 0x46cd05
xor eax, eax
mov word [ebx + 0x154], ax
jmp 0x46ccde
mov dword [esp + 4], str.hIST_must_be_after
mov dword [esp], ebx
call fcn.00459c00
mov eax, dword [esp + 0x354]
mov eax, dword [eax + 8]
jmp 0x46cd09
mov dword [esp + 4], str.tRNS_must_be_after
mov dword [esp], ebx
jmp 0x46cbc3
mov dword [esp + 0x1c], eax
jmp 0x46cc89
mov dword [esp + 4], str.duplicate
mov dword [esp], ebx
call fcn.00459bb0
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
call fcn.00459bb0
nop
Function at 0x46cdb0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
push ebx
sub esp, 0x14
mov ebx, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
mov eax, dword [ebx + 0x78]
and eax, 5
cmp eax, 5
jne 0x46cdf8
or dword [ebx + 0x78], 0x18
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c720
test esi, esi
jne 0x46cde2
add esp, 0x14
pop ebx
pop esi
ret
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], str.invalid
add esp, 0x14
pop ebx
pop esi
jmp fcn.00459c00
mov dword [esp + 4], str.out_of_place
mov dword [esp], ebx
call fcn.00459bb0
nop
lea esi, [esi]

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

Disassembly:
push esi
push ebx
sub esp, 0x24
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46ced3
test al, 6
jne 0x46ce53
cmp edx, 4
je 0x46ce75
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
add esp, 0x24
pop ebx
pop esi
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x24
pop ebx
pop esi
ret
lea esi, [esp + 0x1c]
mov dword [esp + 8], 4
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
test eax, eax
jne 0x46ce4d
mov eax, esi
call fcn.0046c320
mov dword [esp], ebx
mov dword [esp + 8], eax
lea eax, [ebx + 0x2e0]
mov dword [esp + 4], eax
call fcn.00457eb0
mov eax, dword [esp + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00456a20
jmp 0x46ce4d
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
lea esi, [esi]
lea edi, [edi]
Function at 0x46cef0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x48]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46d0f8
test al, 6
jne 0x46d060
test esi, esi
je 0x46cf26
test byte [esi + 8], 2
nop
jne 0x46d084
cmp byte [ebx + 0x15b], 3
je 0x46d0a8
movzx ebp, byte [ebx + 0x15f]
movzx edx, byte [ebx + 0x15c]
cmp edi, ebp
jne 0x46d038
cmp edi, 4
ja 0x46d038
lea edi, [esp + 0x1c]
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], ebx
mov byte [esp + 0x1f], dl
mov byte [esp + 0x1e], dl
mov byte [esp + 0x1d], dl
mov byte [esp + 0x1c], dl
mov dword [esp + 0xc], edx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x46d030
test ebp, ebp
movzx ecx, byte [esp + 0x1c]
je 0x46cfdf
movzx eax, byte [esp + 0x1c]
test al, al
mov byte [esp + 0xc], al
je 0x46d0b7
cmp dl, al
jb 0x46d0b7
lea eax, [esp + 0x1d]
add ebp, edi
jmp 0x46cfd6
movzx ecx, byte [eax]
test cl, cl
je 0x46d0b7
add eax, 1
cmp dl, cl
jb 0x46d0b7
cmp eax, ebp
jne 0x46cfc0
movzx ecx, byte [esp + 0xc]
test byte [ebx + 0x15b], 2
je 0x46d0d0
movzx eax, byte [esp + 0x1d]
mov byte [ebx + 0x1ac], cl
mov byte [ebx + 0x1ad], al
movzx eax, byte [esp + 0x1e]
mov byte [ebx + 0x1ae], al
movzx eax, byte [esp + 0x1f]
mov byte [ebx + 0x1b0], al
lea eax, [ebx + 0x1ac]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00461e10
lea esi, [esi]
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], ebx
mov dword [esp + 4], str.invalid
call fcn.00459c00
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0046c720
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.duplicate
call fcn.00459c00
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, 8
mov ebp, 3
jmp 0x46cf41
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
jmp 0x46d030
movzx eax, byte [esp + 0x1d]
mov byte [ebx + 0x1af], cl
mov byte [ebx + 0x1ac], cl
mov byte [ebx + 0x1ad], cl
mov byte [ebx + 0x1ae], cl
mov byte [ebx + 0x1b0], al
jmp 0x46d013
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
nop
lea esi, [esi]
Function at 0x46d110
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov ebx, dword [esp + 0x80]
mov edx, dword [esp + 0x88]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46d309
test al, 6
jne 0x46d160
cmp edx, 0x20
je 0x46d184
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
lea esi, [esp + 0x40]
mov dword [esp + 8], 0x20
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
test eax, eax
jne 0x46d155
mov eax, esi
call fcn.0046c320
mov esi, eax
mov dword [esp + 0x38], eax
lea eax, [esp + 0x44]
call fcn.0046c320
mov dword [esp + 0x3c], eax
mov edi, eax
lea eax, [esp + 0x48]
call fcn.0046c320
mov dword [esp + 0x20], eax
mov ebp, eax
lea eax, [esp + 0x4c]
call fcn.0046c320
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x50]
call fcn.0046c320
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], eax
lea eax, [esp + 0x54]
call fcn.0046c320
lea ecx, [esp + 0x58]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], eax
mov eax, ecx
call fcn.0046c320
lea edx, [esp + 0x5c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x30], eax
mov eax, edx
call fcn.0046c320
cmp esi, 0xffffffff
mov dword [esp + 0x34], eax
je 0x46d2b0
cmp edi, 0xffffffff
je 0x46d2b0
cmp ebp, 0xffffffff
je 0x46d2b0
mov edx, dword [esp + 0x10]
cmp edx, 0xffffffff
je 0x46d2b0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xffffffff
je 0x46d2b0
cmp dword [esp + 0x18], 0xffffffff
je 0x46d2b0
cmp dword [esp + 0x1c], 0xffffffff
je 0x46d2b0
cmp eax, 0xffffffff
je 0x46d2b0
movzx eax, word [ebx + 0x32a]
test ax, ax
js 0x46d155
test al, 0x10
je 0x46d2c5
or ax, 0x8000
mov word [ebx + 0x32a], ax
mov eax, dword [esp + 0x84]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00456a20
mov dword [esp + 4], str.duplicate
mov dword [esp], ebx
call fcn.00459c00
jmp 0x46d155
mov dword [esp + 4], str.invalid_values
mov dword [esp], ebx
call fcn.00459c00
jmp 0x46d155
or eax, 0x10
mov word [ebx + 0x32a], ax
lea eax, [esp + 0x20]
mov dword [esp + 8], eax
lea eax, [ebx + 0x2e0]
mov dword [esp + 0xc], 1
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00458c30
mov eax, dword [esp + 0x84]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00456a20
jmp 0x46d155
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
lea esi, [esi]
Function at 0x46dca0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x12c
mov ebx, dword [esp + 0x140]
mov edi, dword [esp + 0x144]
mov esi, dword [esp + 0x148]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46dedb
test al, 4
jne 0x46dd70
test edi, edi
je 0x46dce0
test byte [edi + 8], 0x10
jne 0x46dd97
movzx edx, byte [ebx + 0x15b]
test dl, dl
jne 0x46dd20
cmp esi, 2
je 0x46de31
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
add esp, 0x12c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dl, 2
je 0x46ddc0
cmp dl, 3
jne 0x46de90
test al, 2
je 0x46dd70
movzx eax, word [ebx + 0x14c]
cmp esi, eax
ja 0x46dcf4
lea eax, [esi - 1]
cmp eax, 0xff
ja 0x46dcf4
lea ebp, [esp + 0x20]
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.0046c4f0
mov word [ebx + 0x154], si
jmp 0x46de6b
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x12c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.duplicate
call fcn.00459c00
add esp, 0x12c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp esi, 6
jne 0x46dcf4
lea ebp, [esp + 0x20]
mov dword [esp + 8], 6
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.0046c4f0
mov edx, 1
movzx eax, byte [esp + 0x20]
mov word [ebx + 0x154], dx
movzx edx, byte [esp + 0x21]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x23]
mov word [ebx + 0x1be], ax
movzx eax, byte [esp + 0x22]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x25]
mov word [ebx + 0x1c0], ax
movzx eax, byte [esp + 0x24]
shl eax, 8
add eax, edx
mov word [ebx + 0x1c2], ax
jmp 0x46de6b
lea ebp, [esp + 0x20]
mov dword [esp + 8], 2
mov dword [esp + 4], ebp
mov dword [esp], ebx
call fcn.0046c4f0
movzx eax, byte [esp + 0x20]
mov ecx, 1
movzx edx, byte [esp + 0x21]
mov word [ebx + 0x154], cx
shl eax, 8
add eax, edx
mov word [ebx + 0x1c4], ax
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
test eax, eax
je 0x46deb1
xor eax, eax
mov word [ebx + 0x154], ax
jmp 0x46dd10
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid_with_alpha_channel
mov dword [esp], ebx
call fcn.00459c00
jmp 0x46dd10
lea eax, [ebx + 0x1bc]
mov dword [esp + 0x10], eax
movzx eax, word [ebx + 0x154]
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0xc], eax
call fcn.00462530
jmp 0x46dd10
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
nop
lea esi, [esi]
Function at 0x46def0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
push ebx
sub esp, 0x24
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46e0fc
test al, 4
jne 0x46df68
movzx ecx, byte [ebx + 0x15b]
cmp cl, 3
je 0x46df64
test esi, esi
je 0x46df26
test byte [esi + 8], 0x20
jne 0x46df90
cmp cl, 3
mov eax, 1
je 0x46df3e
and ecx, 2
cmp cl, 1
sbb eax, eax
and eax, 0xfffffffc
add eax, 6
cmp edx, eax
je 0x46dfb2
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
add esp, 0x24
pop ebx
pop esi
ret
test al, 2
jne 0x46df1c
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x24
pop ebx
pop esi
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.duplicate
call fcn.00459c00
add esp, 0x24
pop ebx
pop esi
ret
lea eax, [esp + 0x10]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
test eax, eax
jne 0x46df5e
movzx eax, byte [ebx + 0x15b]
cmp al, 3
je 0x46e030
test al, 2
movzx eax, byte [esp + 0x10]
mov byte [esp + 0x16], 0
jne 0x46e090
movzx edx, byte [esp + 0x11]
shl eax, 8
add eax, edx
mov word [esp + 0x1e], ax
mov word [esp + 0x1c], ax
mov word [esp + 0x1a], ax
mov word [esp + 0x18], ax
lea eax, [esp + 0x16]
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.00460eb0
jmp 0x46df5e
movzx eax, byte [esp + 0x10]
test esi, esi
mov byte [esp + 0x16], al
je 0x46e0d0
movzx edx, word [esi + 0x14]
test dx, dx
je 0x46e0d0
movzx ecx, al
cmp dx, cx
jbe 0x46e0e7
lea eax, [eax + eax*2]
add eax, dword [ebx + 0x148]
movzx edx, byte [eax]
mov word [esp + 0x18], dx
movzx edx, byte [eax + 1]
mov word [esp + 0x1a], dx
movzx eax, byte [eax + 2]
mov word [esp + 0x1c], ax
lea esi, [esi]
xor eax, eax
mov word [esp + 0x1e], ax
jmp 0x46e015
movzx edx, byte [esp + 0x11]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x13]
mov word [esp + 0x18], ax
movzx eax, byte [esp + 0x12]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x15]
mov word [esp + 0x1a], ax
movzx eax, byte [esp + 0x14]
shl eax, 8
add eax, edx
mov word [esp + 0x1c], ax
jmp 0x46e080
xor edx, edx
xor ecx, ecx
xor eax, eax
mov word [esp + 0x1c], dx
mov word [esp + 0x1a], cx
mov word [esp + 0x18], ax
jmp 0x46e080
mov dword [esp + 4], str.invalid_index
mov dword [esp], ebx
call fcn.00459c00
jmp 0x46df5e
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
lea esi, [esi]
Function at 0x46e110
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x22c
mov esi, dword [esp + 0x240]
mov edx, dword [esp + 0x248]
mov eax, dword [esi + 0x78]
test al, 1
je 0x46e25d
and eax, 6
cmp eax, 2
je 0x46e162
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.0046c720
mov dword [esp + 4], str.out_of_place
mov dword [esp], esi
call fcn.00459c00
add esp, 0x22c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x244]
test eax, eax
je 0x46e17e
mov eax, dword [esp + 0x244]
test byte [eax + 8], 0x40
jne 0x46e236
movzx eax, word [esi + 0x14c]
mov ecx, edx
shr ecx, 1
cmp eax, ecx
je 0x46e1b4
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.0046c720
mov dword [esp], esi
mov dword [esp + 4], str.invalid
call fcn.00459c00
add esp, 0x22c
pop ebx
pop esi
pop edi
pop ebp
ret
cmp eax, 0x100
ja 0x46e18d
test eax, eax
je 0x46e1fe
lea ebx, [esp + 0x20]
lea ebp, [ebx + eax*2]
lea edi, [esp + 0x1e]
lea esi, [esi]
mov dword [esp + 8], 2
add ebx, 2
mov dword [esp + 4], edi
mov dword [esp], esi
call fcn.0046c4f0
movzx eax, byte [esp + 0x1e]
movzx edx, byte [esp + 0x1f]
shl eax, 8
add eax, edx
mov word [ebx - 2], ax
cmp ebx, ebp
jne 0x46e1d0
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0046c720
test eax, eax
jne 0x46e157
lea eax, [esp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x244]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00461470
jmp 0x46e157
mov dword [esp + 4], edx
mov dword [esp], esi
call fcn.0046c720
mov dword [esp], esi
mov dword [esp + 4], str.duplicate
call fcn.00459c00
add esp, 0x22c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], esi
call fcn.00459bb0
lea esi, [esi]
Function at 0x46e270
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
push ebx
sub esp, 0x34
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46e399
test al, 4
jne 0x46e2c1
test esi, esi
je 0x46e29a
test byte [esi + 8], 0x80
jne 0x46e2e3
cmp edx, 9
je 0x46e305
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
add esp, 0x34
pop ebx
pop esi
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x34
pop ebx
pop esi
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.duplicate
call fcn.00459c00
add esp, 0x34
pop ebx
pop esi
ret
lea eax, [esp + 0x27]
mov dword [esp + 4], eax
mov dword [esp + 8], 9
mov dword [esp], ebx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
test eax, eax
jne 0x46e2bb
movzx eax, byte [esp + 0x2f]
movzx edx, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2e]
mov dword [esp + 4], esi
mov dword [esp + 0x10], eax
movzx eax, byte [esp + 0x2c]
shl edx, 0x18
mov dword [esp], ebx
shl eax, 0x10
add edx, eax
movzx eax, byte [esp + 0x2d]
add edx, ecx
movzx ecx, byte [esp + 0x2a]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x27]
mov dword [esp + 0xc], eax
movzx eax, byte [esp + 0x28]
shl edx, 0x18
shl eax, 0x10
add edx, eax
movzx eax, byte [esp + 0x29]
add edx, ecx
shl eax, 8
add eax, edx
mov dword [esp + 8], eax
call fcn.00461c90
jmp 0x46e2bb
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
lea esi, [esi]
Function at 0x46e3b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push esi
push ebx
sub esp, 0x34
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov eax, dword [ebx + 0x78]
test al, 1
je 0x46e4d9
test al, 4
jne 0x46e401
test esi, esi
je 0x46e3da
test byte [esi + 9], 1
jne 0x46e423
cmp edx, 9
je 0x46e445
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp + 4], str.invalid
mov dword [esp], ebx
call fcn.00459c00
add esp, 0x34
pop ebx
pop esi
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.out_of_place
call fcn.00459c00
add esp, 0x34
pop ebx
pop esi
ret
mov dword [esp + 4], edx
mov dword [esp], ebx
call fcn.0046c720
mov dword [esp], ebx
mov dword [esp + 4], str.duplicate
call fcn.00459c00
add esp, 0x34
pop ebx
pop esi
ret
lea eax, [esp + 0x27]
mov dword [esp + 4], eax
mov dword [esp + 8], 9
mov dword [esp], ebx
call fcn.0046c4f0
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0046c720
test eax, eax
jne 0x46e3fb
movzx eax, byte [esp + 0x27]
movzx edx, byte [esp + 0x28]
movzx ecx, byte [esp + 0x2a]
mov dword [esp + 4], esi
shl eax, 0x18
shl edx, 0x10
add edx, eax
movzx eax, byte [esp + 0x29]
add ecx, edx
movzx edx, byte [esp + 0x2c]
mov dword [esp], ebx
shl eax, 8
add ecx, eax
movzx eax, byte [esp + 0x2b]
shl edx, 0x10
mov dword [esp + 8], ecx
shl eax, 0x18
add edx, eax
movzx eax, byte [esp + 0x2e]
add edx, eax
movzx eax, byte [esp + 0x2d]
shl eax, 8
add eax, edx
movzx edx, byte [esp + 0x2f]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call fcn.00461630
jmp 0x46e3fb
mov dword [esp + 4], str.missing_IHDR
mov dword [esp], ebx
call fcn.00459bb0
lea esi, [esi]