Function at 0x4153a0
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x20
cmp eax, 0x42
push ebx
push esi
push edi
push ebp
ja case.0x4153b8.15
xor ecx, ecx
mov cl, byte [eax + 0x41578c]
jmp dword [ecx*4 + 0x41574c]
mov esi, dword [esp + 0x38]
lea eax, [esp + 0x10]
push eax
mov ecx, dword [esi + 2]
push ecx
call fcn.00417020
lea ecx, [esp + 0x18]
add esp, 8
lea eax, [esi + 0xa]
push ecx
mov edx, dword [eax]
mov ecx, dword [eax + 4]
push ecx
push edx
call fcn.004a1170
lea ecx, [esp + 0x2c]
add esp, 0xc
push ecx
call fcn.004c68f0
lea ecx, [esp + 0x14]
add esp, 4
push eax
push ecx
call fcn.004a1190
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
add esp, 8
mov eax, dword [esi + 2]
push ecx
push edx
push eax
call fcn.00417060
add esp, 0xc
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
lea eax, [esp + 0x20]
mov esi, dword [esp + 0x38]
push eax
mov ecx, dword [esi + 2]
push ecx
call fcn.00417020
lea eax, [esp + 0x28]
add esp, 8
push eax
call fcn.004157d0
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
add esp, 4
lea eax, [esi + 0xa]
push 0
mov dword [eax], ecx
push eax
mov dword [eax + 4], edx
call fcn.004c77c0
add esp, 8
push esi
push 0
call fcn.00415370
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
push esi
push 0x42
call fcn.00415370
add esp, 8
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x12]
cmp eax, 1
je 0x4154c4
cmp eax, 2
je 0x415506
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [esi + 2]
push eax
call fcn.00415ab0
add esp, 4
test eax, eax
push 0
push 1
je 0x4154f0
push 1
mov eax, dword [esi + 2]
push eax
call fcn.00415a80
add esp, 0x10
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [esi + 2]
push eax
call fcn.00415110
add esp, 0xc
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [esi + 2]
push eax
call fcn.00415ab0
add esp, 4
test eax, eax
push 1
push 2
je 0x415532
push 2
mov eax, dword [esi + 2]
push eax
call fcn.00415a80
add esp, 0x10
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, dword [esi + 2]
push eax
call fcn.00415110
add esp, 0xc
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
push esi
push 0x1a
call fcn.00415370
add esp, 8
sub eax, 2
cmp eax, 1
pop ebp
sbb eax, eax
pop edi
inc eax
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
push 1
mov eax, dword [esi + 2]
push eax
call fcn.00415c20
add esp, 8
test eax, eax
je 0x4155ce
mov dword [esi + 0x12], 1
mov dword [esi + 0x1a], 2
push esi
push 0x1b
call fcn.00415370
add esp, 8
test eax, eax
je case.0x4153b8.15
push esi
push 0xa
call fcn.00415370
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 2
push esi
push 0xa
mov dword [esi + 0x12], eax
mov dword [esi + 0x1a], eax
call fcn.00415370
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
push esi
push eax
call fcn.00415d90
add esp, 8
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
mov ecx, dword [esi + 0x22]
mov eax, ecx
shr eax, 0x10
movzx ecx, cx
movzx edx, ax
push edx
mov eax, dword [esi + 2]
push ecx
push eax
call fcn.004171b0
add esp, 0xc
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov esi, dword [esp + 0x38]
push 0x1f4
xor ebx, ebx
xor edi, edi
mov eax, dword [esi + 2]
push eax
call dword [0x4f6c18]
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x41572f
push 0x10a
mov eax, dword [esi + 0x22]
push eax
mov ecx, dword [0x4f0ba8]
push ecx
call fcn.004a16a0
mov dword [esp + 0x2c], eax
add esp, 0xc
cmp eax, ebx
je 0x415734
push eax
mov ebp, dword [0x4f6958]
call ebp
mov ebp, eax
test ebp, ebp
je 0x41571a
mov edi, 1
cmp word [ebp + 2], bx
jle 0x4156da
movsx eax, bx
mov ax, word [ebp + eax*2 + 4]
mov ecx, 1
test ax, ax
jg 0x4156b6
xor ecx, ecx
test ecx, ecx
jne 0x4156bd
neg ax
inc bx
push ecx
movsx eax, ax
mov ecx, dword [esp + 0x14]
push eax
push 0x404
push ecx
call dword [0x4f6cb8]
mov edi, eax
test edi, edi
jne 0x41569c
test edi, edi
je 0x41571a
mov ecx, dword [esp + 0x10]
push 0
push 0
push 0x407
push ecx
call dword [0x4f6cb8]
mov eax, dword [esi + 0x12]
test eax, eax
jne 0x4156fd
movsx eax, word [ebp]
movzx eax, ax
mov ecx, dword [esp + 0x10]
or eax, 0x10000
push ecx
push eax
push 0x111
mov ecx, dword [esi + 2]
push ecx
call dword [0x4f6cb8]
mov eax, dword [esp + 0x20]
push eax
call dword [0x4f695c]
mov eax, edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov edi, 1
mov eax, edi
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x20
ret