Function at 0x100424d0
Capabilities:
Authenticate hmac
Parse pe header
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x5ac
push ebx
push ebp
push esi
mov edx, 0xd
mov ebp, 6
mov ebx, 0xc
mov esi, 5
mov ecx, 0xe
mov eax, 2
push edi
mov edi, 0x11
mov dword [esp + 0x28], 9
mov dword [esp + 0x2c], 0xb
mov dword [esp + 0x30], 0xa
mov dword [esp + 0x34], 8
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], 7
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], 0x10
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], 0xf
mov dword [esp + 0x64], 4
mov dword [esp + 0x68], 3
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 8
mov dword [esp + 0x74], ebp
mov dword [esp + 0x78], 7
mov dword [esp + 0x7c], 9
mov dword [esp + 0x80], 0xb
mov dword [esp + 0x84], 0xa
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 1
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 0x10
mov dword [esp + 0xa0], 4
mov dword [esp + 0xa4], 3
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], 0xf
mov dword [esp + 0xb8], 0x12
mov dword [esp + 0xbc], 0x14
mov dword [esp + 0xc0], 0x13
mov dword [esp + 0xc4], 0x10
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], 0xb
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd8], 0x1b
mov dword [esp + 0xdc], 0x1c
mov dword [esp + 0xe0], 0x1d
mov dword [esp + 0xe4], 0x16
mov dword [esp + 0xe8], 4
mov dword [esp + 0xec], 3
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], 9
mov dword [esp + 0xf8], 0x1a
mov dword [esp + 0xfc], 0x1f
mov dword [esp + 0x100], 0x1e
mov dword [esp + 0x104], 0x15
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], 0
mov dword [esp + 0x110], 1
mov dword [esp + 0x114], 0xa
mov dword [esp + 0x118], 0x17
mov dword [esp + 0x11c], 0x19
mov dword [esp + 0x120], 0x18
mov dword [esp + 0x124], edi
mov dword [esp + 0x128], 8
mov dword [esp + 0x12c], ebp
mov dword [esp + 0x130], 7
mov dword [esp + 0x134], ecx
mov dword [esp + 0x138], edx
mov dword [esp + 0x13c], 0xb
mov dword [esp + 0x140], ebx
mov dword [esp + 0x144], 0xf
mov dword [esp + 0x148], 0x12
mov dword [esp + 0x14c], 0x14
mov dword [esp + 0x150], 0x13
mov dword [esp + 0x154], 0x10
mov dword [esp + 0x158], 4
mov dword [esp + 0x15c], 3
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], 9
mov dword [esp + 0x168], 0x1b
mov dword [esp + 0x16c], 0x1c
mov dword [esp + 0x170], 0x1d
mov dword [esp + 0x174], 0x16
mov dword [esp + 0x178], esi
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 1
mov dword [esp + 0x184], 0xa
mov dword [esp + 0x188], 0x1a
mov dword [esp + 0x18c], 0x1f
mov dword [esp + 0x190], 0x1e
mov dword [esp + 0x194], 0x15
mov dword [esp + 0x198], 8
mov dword [esp + 0x19c], ebp
mov dword [esp + 0x1a0], 7
mov dword [esp + 0x1a4], ecx
mov dword [esp + 0x1a8], 0x17
mov dword [esp + 0x1ac], 0x19
mov dword [esp + 0x1b0], 0x18
mov dword [esp + 0x1b4], edi
mov dword [esp + 0x1b8], 0x40
mov dword [esp + 0x1bc], 0x45
mov dword [esp + 0x1c0], 0x4d
mov dword [esp + 0x1c4], 0x57
mov dword [esp + 0x1c8], 0x56
mov dword [esp + 0x1cc], 0x4c
mov dword [esp + 0x1d0], 0x44
mov dword [esp + 0x1d4], 0x43
mov dword [esp + 0x1d8], 0x3f
mov dword [esp + 0x1dc], 0x3a
mov dword [esp + 0x1e0], 0x32
mov dword [esp + 0x1e4], 0x28
mov dword [esp + 0x1e8], 0x29
mov dword [esp + 0x1ec], 0x33
mov dword [esp + 0x1f0], 0x3b
mov dword [esp + 0x1f4], 0x3c
mov dword [esp + 0x1f8], 0x46
mov dword [esp + 0x1fc], 0x5e
mov dword [esp + 0x200], 0x64
mov dword [esp + 0x204], 0x6d
mov dword [esp + 0x208], 0x6c
mov dword [esp + 0x20c], 0x63
mov dword [esp + 0x210], 0x5d
mov dword [esp + 0x214], 0x4b
mov dword [esp + 0x218], 0x39
mov dword [esp + 0x21c], 0x21
mov dword [esp + 0x220], 0x1b
mov dword [esp + 0x224], 0x12
mov dword [esp + 0x228], 0x13
mov dword [esp + 0x22c], 0x1c
mov dword [esp + 0x230], 0x22
mov dword [esp + 0x234], 0x34
mov dword [esp + 0x238], 0x4e
mov dword [esp + 0x23c], 0x65
mov dword [esp + 0x240], 0x72
mov dword [esp + 0x244], 0x74
mov dword [esp + 0x248], 0x73
mov dword [esp + 0x24c], 0x70
mov dword [esp + 0x250], 0x62
mov dword [esp + 0x254], 0x53
mov dword [esp + 0x258], 0x31
mov dword [esp + 0x25c], 0x1a
mov dword [esp + 0x260], edx
mov dword [esp + 0x264], 0xb
mov dword [esp + 0x268], ebx
mov dword [esp + 0x26c], 0xf
mov dword [esp + 0x270], 0x1d
mov dword [esp + 0x274], 0x2c
mov dword [esp + 0x278], 0x58
mov dword [esp + 0x27c], 0x6e
mov dword [esp + 0x280], 0x7b
mov dword [esp + 0x284], 0x7c
mov dword [esp + 0x288], 0x7d
mov dword [esp + 0x28c], 0x76
mov dword [esp + 0x290], 0x6b
mov dword [esp + 0x294], 0x55
mov dword [esp + 0x298], 0x27
mov dword [esp + 0x29c], edi
mov dword [esp + 0x2a0], 4
mov dword [esp + 0x2a4], 3
mov dword [esp + 0x2a8], eax
mov dword [esp + 0x2ac], 9
mov dword [esp + 0x2b0], 0x14
mov dword [esp + 0x2b4], 0x2a
mov dword [esp + 0x2b8], 0x59
mov dword [esp + 0x2bc], 0x6f
mov dword [esp + 0x2c0], 0x7a
mov dword [esp + 0x2c4], 0x7f
mov dword [esp + 0x2c8], 0x7e
mov dword [esp + 0x2cc], 0x75
mov dword [esp + 0x2d0], 0x6a
mov dword [esp + 0x2d4], 0x54
mov dword [esp + 0x2d8], 0x26
mov dword [esp + 0x2dc], 0x10
mov dword [esp + 0x2e0], esi
mov dword [esp + 0x2e4], 0
mov dword [esp + 0x2e8], 1
mov dword [esp + 0x2ec], 0xa
mov dword [esp + 0x2f0], 0x15
mov dword [esp + 0x2f4], 0x2b
mov dword [esp + 0x2f8], 0x4f
mov dword [esp + 0x2fc], 0x66
mov dword [esp + 0x300], 0x77
mov dword [esp + 0x304], 0x79
mov dword [esp + 0x308], 0x78
mov dword [esp + 0x30c], 0x71
mov dword [esp + 0x310], 0x61
mov dword [esp + 0x314], 0x52
mov dword [esp + 0x318], 0x30
mov dword [esp + 0x31c], 0x19
mov dword [esp + 0x320], 8
mov dword [esp + 0x324], ebp
mov dword [esp + 0x328], 7
mov dword [esp + 0x32c], ecx
mov dword [esp + 0x330], 0x1e
mov dword [esp + 0x334], 0x2d
mov dword [esp + 0x338], 0x47
mov dword [esp + 0x33c], 0x5f
mov dword [esp + 0x340], 0x67
mov dword [esp + 0x344], 0x68
mov dword [esp + 0x348], 0x69
mov dword [esp + 0x34c], 0x60
mov dword [esp + 0x350], 0x5c
mov dword [esp + 0x354], 0x4a
mov dword [esp + 0x358], 0x38
mov dword [esp + 0x35c], 0x20
mov dword [esp + 0x360], 0x18
mov dword [esp + 0x364], 0x17
mov dword [esp + 0x368], 0x16
mov dword [esp + 0x36c], 0x1f
mov dword [esp + 0x370], 0x23
mov dword [esp + 0x374], 0x35
mov dword [esp + 0x378], 0x41
mov dword [esp + 0x37c], 0x48
mov dword [esp + 0x380], 0x50
mov dword [esp + 0x384], 0x5a
mov dword [esp + 0x388], 0x5b
mov dword [esp + 0x38c], 0x51
mov dword [esp + 0x390], 0x49
mov dword [esp + 0x394], 0x42
mov dword [esp + 0x398], 0x3e
mov dword [esp + 0x39c], 0x37
mov dword [esp + 0x3a0], 0x2f
mov dword [esp + 0x3a4], 0x25
mov dword [esp + 0x3a8], 0x24
mov dword [esp + 0x3ac], 0x2e
mov dword [esp + 0x3b0], 0x36
mov dword [esp + 0x3b4], 0x3d
mov dword [esp + 0x3b8], 0x3f
mov dword [esp + 0x3bc], 0x3a
mov dword [esp + 0x3c0], 0x32
mov dword [esp + 0x3c4], 0x28
mov dword [esp + 0x4c0], esi
xor esi, esi
mov dword [esp + 0x3c8], 0x29
mov dword [esp + 0x3cc], 0x33
mov dword [esp + 0x3d0], 0x3b
mov dword [esp + 0x3d4], 0x3c
mov dword [esp + 0x3d8], 0x40
mov dword [esp + 0x3dc], 0x45
mov dword [esp + 0x3e0], 0x4d
mov dword [esp + 0x3e4], 0x57
mov dword [esp + 0x3e8], 0x56
mov dword [esp + 0x3ec], 0x4c
mov dword [esp + 0x3f0], 0x44
mov dword [esp + 0x3f4], 0x43
mov dword [esp + 0x3f8], 0x39
mov dword [esp + 0x3fc], 0x21
mov dword [esp + 0x400], 0x1b
mov dword [esp + 0x404], 0x12
mov dword [esp + 0x408], 0x13
mov dword [esp + 0x40c], 0x1c
mov dword [esp + 0x410], 0x22
mov dword [esp + 0x414], 0x34
mov dword [esp + 0x418], 0x46
mov dword [esp + 0x41c], 0x5e
mov dword [esp + 0x420], 0x64
mov dword [esp + 0x424], 0x6d
mov dword [esp + 0x428], 0x6c
mov dword [esp + 0x42c], 0x63
mov dword [esp + 0x430], 0x5d
mov dword [esp + 0x434], 0x4b
mov dword [esp + 0x438], 0x31
mov dword [esp + 0x43c], 0x1a
mov dword [esp + 0x440], edx
mov dword [esp + 0x444], 0xb
mov dword [esp + 0x448], ebx
mov dword [esp + 0x44c], 0xf
mov dword [esp + 0x450], 0x1d
mov dword [esp + 0x454], 0x2c
mov dword [esp + 0x458], 0x4e
mov dword [esp + 0x45c], 0x65
mov dword [esp + 0x460], 0x72
mov dword [esp + 0x464], 0x74
mov dword [esp + 0x468], 0x73
mov dword [esp + 0x46c], 0x70
mov dword [esp + 0x470], 0x62
mov dword [esp + 0x474], 0x53
mov dword [esp + 0x478], 0x27
mov dword [esp + 0x47c], edi
mov dword [esp + 0x480], 4
mov dword [esp + 0x484], 3
mov dword [esp + 0x488], eax
mov dword [esp + 0x48c], 9
mov dword [esp + 0x490], 0x14
mov dword [esp + 0x494], 0x2a
mov dword [esp + 0x498], 0x58
mov dword [esp + 0x49c], 0x6e
mov dword [esp + 0x4a0], 0x7b
mov dword [esp + 0x4a4], 0x7c
mov dword [esp + 0x4a8], 0x7d
mov dword [esp + 0x4ac], 0x76
mov dword [esp + 0x4b0], 0x6b
mov dword [esp + 0x4b4], 0x55
mov dword [esp + 0x4b8], 0x26
mov dword [esp + 0x4bc], 0x10
mov dword [esp + 0x4c4], esi
mov dword [esp + 0x4c8], 1
mov dword [esp + 0x4cc], 0xa
mov dword [esp + 0x4d0], 0x15
mov dword [esp + 0x4d4], 0x2b
mov dword [esp + 0x4d8], 0x59
mov dword [esp + 0x4dc], 0x6f
mov dword [esp + 0x4e0], 0x7a
mov dword [esp + 0x4e4], 0x7f
mov dword [esp + 0x4e8], 0x7e
mov dword [esp + 0x4ec], 0x75
mov dword [esp + 0x4f0], 0x6a
mov dword [esp + 0x4f4], 0x54
mov dword [esp + 0x4f8], 0x30
mov dword [esp + 0x4fc], 0x19
mov dword [esp + 0x500], 8
mov dword [esp + 0x504], ebp
mov eax, dword [esp + 0x5c0]
mov dword [esp + 0x508], 7
mov dword [esp + 0x50c], ecx
mov dword [esp + 0x510], 0x1e
mov dword [esp + 0x514], 0x2d
mov dword [esp + 0x518], 0x4f
mov dword [esp + 0x51c], 0x66
mov dword [esp + 0x520], 0x77
mov dword [esp + 0x524], 0x79
mov dword [esp + 0x528], 0x78
mov dword [esp + 0x52c], 0x71
mov dword [esp + 0x530], 0x61
mov dword [esp + 0x534], 0x52
mov dword [esp + 0x538], 0x38
mov dword [esp + 0x53c], 0x20
mov dword [esp + 0x540], 0x18
mov dword [esp + 0x544], 0x17
mov dword [esp + 0x548], 0x16
mov dword [esp + 0x54c], 0x1f
mov dword [esp + 0x550], 0x23
mov dword [esp + 0x554], 0x35
mov dword [esp + 0x558], 0x47
mov dword [esp + 0x55c], 0x5f
mov dword [esp + 0x560], 0x67
mov dword [esp + 0x564], 0x68
mov dword [esp + 0x568], 0x69
mov dword [esp + 0x56c], 0x60
mov dword [esp + 0x570], 0x5c
mov dword [esp + 0x574], 0x4a
mov dword [esp + 0x578], 0x3e
mov dword [esp + 0x57c], 0x37
mov dword [esp + 0x580], 0x2f
mov dword [esp + 0x584], 0x25
mov dword [esp + 0x588], 0x24
mov dword [esp + 0x58c], 0x2e
mov dword [esp + 0x590], 0x36
mov dword [esp + 0x594], 0x3d
mov dword [esp + 0x598], 0x41
mov dword [esp + 0x59c], 0x48
mov dword [esp + 0x5a0], 0x50
mov dword [esp + 0x5a4], 0x5a
mov dword [esp + 0x5a8], 0x5b
mov dword [esp + 0x5ac], 0x51
mov dword [esp + 0x5b0], 0x49
mov dword [esp + 0x5b4], 0x42
cmp eax, esi
je 0x100433a6
mov eax, dword [eax]
lea ecx, [eax + 0x128]
mov edx, ecx
and edx, 0xf
je 0x10043380
mov eax, 0x10
sub eax, edx
jmp 0x10043382
xor eax, eax
mov eax, dword [eax + ecx + 0xc]
mov edx, ecx
and edx, 0xf
mov dword [esp + 0x18], eax
je 0x10043489
mov eax, 0x10
sub eax, edx
mov ecx, dword [eax + ecx + 0x10]
mov dword [esp + 0x10], ecx
jmp 0x100433ae
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x18]
cdq
mov edi, eax
mov eax, dword [esp + 0x10]
xor edi, edx
sub edi, edx
cdq
mov ebp, eax
xor ebp, edx
sub ebp, edx
cmp edi, esi
jle 0x1004353e
cmp ebp, esi
jle 0x1004353e
push 4
call fcn.1014f4ab
mov ebx, eax
add esp, 4
mov dword [esp + 0x14], ebx
cmp ebx, esi
je 0x1004353e
xor eax, eax
push edi
push esi
lea ecx, [eax + 8]
mov edx, ebp
call fcn.100013a0
mov esi, eax
add esp, 8
test esi, esi
je 0x10043535
push 0x10
push esi
call fcn.1014f831
add esp, 8
mov dword [ebx], eax
test eax, eax
je 0x10043535
push esi
push 0
push eax
call fcn.101527d0
mov esi, dword [ebx]
add esp, 0xc
xor eax, eax
push 0x100
lea edx, [esi + 0x10]
mov dword [esi], 1
mov dword [esi + 4], eax
push 0xff
push edx
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
call fcn.101527d0
add esp, 0xc
push ebx
mov dword [esi + 0x120], 1
call sym.FreeImage.dll__FreeImage_GetICCProfile_4
xor ecx, ecx
push 0x1029a760
push 0x20
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov word [eax], cx
call fcn.1014f8fe
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x10043498
push ebx
call fcn.10003cb0
jmp 0x1004349a
xor eax, eax
mov ecx, dword [eax + ecx + 0x10]
mov dword [esp + 0x10], ecx
jmp 0x100433ae
xor ebx, ebx
mov dword [esi + 0x11c], ebx
mov ebx, dword [esp + 0x14]
push ebx
mov dword [esi + 0x124], 0
call sym.FreeImage.dll__FreeImage_GetInfoHeader_4
mov esi, eax
mov eax, 8
mov edx, 1
mov ecx, eax
mov dword [esi], 0x28
mov dword [esi + 4], edi
mov dword [esi + 8], ebp
mov word [esi + 0xc], dx
mov dword [esi + 0x10], 0
mov word [esi + 0xe], ax
call fcn.10001380
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov eax, 0xb13
push ebx
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
call sym.FreeImage.dll__FreeImage_GetPalette_4
xor ecx, ecx
inc eax
lea esp, [esp]
mov byte [eax + 1], cl
mov byte [eax], cl
mov byte [eax - 1], cl
inc ecx
add eax, 4
cmp ecx, 0x100
jl 0x10043500
mov ecx, dword [esp + 0x5c4]
mov eax, ecx
sub eax, 3
je 0x10043554
sub eax, 1
je 0x1004354b
sub eax, 4
jne 0x1004353e
lea esi, [esp + 0x1b8]
jmp 0x10043558
push ebx
call fcn.1014f3ce
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5ac
ret
lea esi, [esp + 0xb8]
jmp 0x10043558
lea esi, [esp + 0x28]
lea edi, [ecx + ecx]
mov ebx, edi
imul ebx, ecx
mov eax, 0x100
cdq
idiv ebx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], edi
test edi, edi
jle 0x1004359d
mov ebx, edi
mov ecx, esi
mov edx, edi
lea ebx, [ebx]
mov ebp, dword [ecx]
imul ebp, eax
mov dword [ecx], ebp
add ecx, 4
sub edx, 1
jne 0x10043580
lea ecx, [edi*4]
add esi, ecx
sub ebx, 1
jne 0x10043576
xor ebx, ebx
cmp dword [esp + 0x10], ebx
mov dword [esp + 0x24], ebx
jle 0x100436c9
mov ebp, dword [esp + 0x5c0]
test ebp, ebp
je 0x100435c4
mov eax, dword [ebp]
cmp dword [eax + 0x120], 0
jne 0x100435c8
xor edi, edi
jmp 0x10043616
add eax, 0x128
mov edx, eax
and edx, 0xf
je 0x100435dd
mov ecx, 0x10
sub ecx, edx
jmp 0x100435df
xor ecx, ecx
mov edi, dword [eax + ecx + 0xc]
mov edx, eax
and edx, 0xf
je 0x100435f3
mov ecx, 0x10
sub ecx, edx
jmp 0x100435f5
xor ecx, ecx
movzx esi, word [eax + ecx + 0x16]
imul esi, edi
add esi, 7
shr esi, 3
add esi, 3
push ebp
and esi, 0xfffffffc
call sym.FreeImage.dll__FreeImage_GetBits_4
imul esi, ebx
mov edi, eax
add edi, esi
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
cmp dword [eax + 0x120], 0
jne 0x10043629
xor ecx, ecx
jmp 0x1004367b
add eax, 0x128
mov edx, eax
and edx, 0xf
je 0x1004363e
mov ecx, 0x10
sub ecx, edx
jmp 0x10043640
xor ecx, ecx
mov ebp, dword [eax + ecx + 0xc]
mov edx, eax
and edx, 0xf
je 0x10043654
mov ecx, 0x10
sub ecx, edx
jmp 0x10043656
xor ecx, ecx
movzx esi, word [eax + ecx + 0x16]
mov edx, dword [esp + 0x14]
imul esi, ebp
add esi, 7
shr esi, 3
add esi, 3
push edx
and esi, 0xfffffffc
call sym.FreeImage.dll__FreeImage_GetBits_4
imul esi, ebx
mov ecx, eax
add ecx, esi
xor esi, esi
cmp dword [esp + 0x18], esi
jle 0x100436ba
mov eax, ebx
cdq
idiv dword [esp + 0x20]
sub edi, ecx
mov ebp, edx
mov ebx, dword [esp + 0x20]
mov eax, esi
cdq
idiv ebx
movzx eax, byte [edi + ecx]
imul edx, ebx
mov ebx, dword [esp + 0x1c]
add edx, ebp
cmp eax, dword [ebx + edx*4]
setl dl
dec dl
mov byte [ecx], dl
inc esi
inc ecx
cmp esi, dword [esp + 0x18]
jl 0x1004368e
mov ebx, dword [esp + 0x24]
inc ebx
cmp ebx, dword [esp + 0x10]
mov dword [esp + 0x24], ebx
jl 0x100435ad
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5ac
ret