Function at 0x1d2bb73
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov eax, 0x1d59bf3
call fcn.01d55708
mov eax, 0x4010
call fcn.01d558b0
push ebx
mov ebx, dword [ebp + 0x10]
mov eax, 0x1ff0
push esi
mov esi, ecx
cmp bx, ax
jbe 0x1d2bb9f
xor al, al
jmp 0x1d2c087
push edi
push 0x1ff4
lea eax, [ebp - 0x201c]
push 0
push eax
call sub.MSVCR100.dll_memset
mov eax, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
add esp, 0xc
mov dword [ebp - 0x201c], eax
test bx, bx
je 0x1d2bbdb
movzx eax, bx
push eax
lea eax, [ebp - 0x2018]
push edi
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
cmp dword [esi + 0x3e8], 0
jne 0x1d2bc5c
mov eax, dword [esi + 0x3c4]
test eax, eax
je 0x1d2bdfa
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
pop ecx
movzx ecx, word [eax + 0xdc]
mov edx, 0xffff
cmp cx, dx
je 0x1d2bc75
add eax, 0xde
cmp word [eax], dx
je 0x1d2bc75
mov word [esi + 0x45f4], cx
mov ax, word [eax]
mov word [esi + 0x45f6], ax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x401c], eax
movzx eax, bx
push eax
lea eax, [ebp - 0x4018]
push edi
push eax
call sub.MSVCR100.dll_memcpy
add esp, 0xc
lea eax, [ebx + 4]
push eax
lea eax, [ebp - 0x401c]
push eax
push 0
lea ecx, [esi + 0x45f8]
call fcn.01d4aed0
jmp 0x1d2bc75
lea eax, [ebx + 4]
movzx eax, ax
push eax
lea eax, [ebp - 0x201c]
push eax
push 2
push 1
mov ecx, esi
call fcn.01d27c9c
mov ax, word [ebp + 0xa]
mov ecx, 0x228
cmp ax, cx
jne 0x1d2bcb4
cmp bx, 0x58
jne 0x1d2bdfa
mov esi, dword [esi + 0x3c4]
mov eax, dword [esi]
push esi
call dword [eax + 0x18]
pop ecx
push 0x16
add eax, 0xe4
pop ecx
mov edx, dword [edi]
mov dword [eax], edx
add edi, 4
add eax, 4
dec ecx
jne 0x1d2bca2
jmp 0x1d2c084
mov ecx, 0x229
cmp ax, cx
jne 0x1d2bccf
mov ecx, 0xc0
movzx eax, bx
xor edx, edx
div ecx
jmp 0x1d2c084
mov ecx, 0x1f4
cmp ax, cx
jne 0x1d2bcde
push 0x14
pop ecx
jmp 0x1d2bcc3
mov ecx, 0x22a
cmp ax, cx
jne 0x1d2bde4
mov eax, 0xa0
cmp ax, bx
jne 0x1d2bdfa
and dword [ebp - 0x1c], 0
mov ebx, vtable.CBitmap.0
mov dword [ebp - 0x20], ebx
and dword [ebp - 4], 0
mov ecx, esi
call fcn.01d2a30b
mov dword [ebp + 0xc], eax
call sub.mfc100.dll_Ordinal_1929
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
movzx eax, word [0x1d89cfc]
push eax
push 2
push eax
call sub.mfc100.dll_Ordinal_1900
push eax
call dword [sym.imp.USER32.dll_LoadBitmapW]
push eax
lea ecx, [ebp - 0x20]
call sub.mfc100.dll_Ordinal_2184
test eax, eax
je 0x1d2bd5d
mov eax, dword [esi + 0x4c7c]
mov ecx, dword [eax]
lea edx, [ebp - 0x20]
push edx
push eax
call dword [ecx + 0x24]
pop ecx
pop ecx
lea ecx, [ebp - 0x20]
call sub.mfc100.dll_Ordinal_3439
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp + 0xc], eax
call sub.mfc100.dll_Ordinal_1929
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0xc], ecx
mov esi, dword [esi + 0x4c7c]
mov eax, dword [esi]
push 0
push dword [edi + 0x24]
lea ecx, [edi + 0x28]
push ecx
inc edi
push edi
push esi
call dword [eax + 0x40]
add esp, 0x14
call sub.mfc100.dll_Ordinal_1929
mov esi, dword [eax + 8]
push str.WAVE
push str.BUGLE
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceA]
test eax, eax
je 0x1d2bdd0
push eax
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov edi, eax
test edi, edi
je 0x1d2bdc9
push edi
call dword [sym.imp.KERNEL32.dll_LockResource]
push 7
push esi
push eax
call dword [sym.imp.WINMM.dll_PlaySoundA]
push edi
call dword [sym.imp.KERNEL32.dll_FreeResource]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], ebx
call fcn.01d027d8
jmp 0x1d2c084
mov ecx, 0x1f5
cmp ax, cx
jne 0x1d2c084
push 0x10
pop eax
cmp ax, bx
je 0x1d2be01
xor al, al
jmp 0x1d2c086
cmp byte [edi], 2
jne 0x1d2c084
push dword [edi + 4]
lea ebx, [esi + 0x3cc]
mov eax, dword [ebx]
push ebx
call dword [eax + 0x24]
push dword [edi + 8]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx]
push ebx
call dword [eax + 0x24]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x18]
add esp, 0x10
test eax, eax
je 0x1d2c084
cmp dword [ebp - 0x10], 0
je 0x1d2c084
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov ebx, eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
pop ecx
pop ecx
mov dword [ebp - 0x14], eax
test ebx, ebx
je 0x1d2c084
test eax, eax
je 0x1d2c084
cmp word [edi + 0xc], 0x16
jae 0x1d2c084
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_316]
movzx eax, word [edi + 0xc]
add ebx, 0x40
push ebx
mov dword [ebp - 0x18], eax
lea eax, [ebp + 0x10]
push 0x1d68b2c
push eax
mov dword [ebp - 4], 1
call dword [sym.imp.mfc100.dll_Ordinal_4283]
mov ebx, dword [esi + 0x4c7c]
mov edi, dword [ebx]
add esp, 0xc
push 0
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_5207]
push eax
push 0xff0000
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
push ebx
call dword [edi + 0x34]
mov edi, dword [ebp - 0x18]
add edi, 0xfffffff5
imul edi, edi, 0x1da
add esp, 0x14
lea eax, [edi + 0x1d69160]
push eax
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1316]
mov eax, dword [esi + 0x4c7c]
mov ebx, dword [eax]
push 0
lea ecx, [ebp + 0x10]
mov dword [ebp - 0x10], eax
call dword [sym.imp.mfc100.dll_Ordinal_5207]
push eax
push 0xff00ff
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
push dword [ebp - 0x10]
call dword [ebx + 0x34]
mov eax, dword [ebp - 0x14]
add eax, 0x40
push eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0x10]
push 0x1d68b34
push eax
call dword [sym.imp.mfc100.dll_Ordinal_4283]
mov eax, dword [esi + 0x4c7c]
mov ebx, dword [eax]
add esp, 0x20
push 0
lea ecx, [ebp + 0x10]
mov dword [ebp - 0x10], eax
call dword [sym.imp.mfc100.dll_Ordinal_5207]
push eax
push 0xff0000
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
push dword [ebp - 0x10]
call dword [ebx + 0x34]
add esp, 0x14
lea eax, [edi + 0x1d691e0]
push eax
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1316]
mov eax, dword [esi + 0x4c7c]
mov ebx, dword [eax]
push 0
lea ecx, [ebp + 0x10]
mov dword [ebp - 0x10], eax
call dword [sym.imp.mfc100.dll_Ordinal_5207]
push eax
push 0xff00ff
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
push dword [ebp - 0x10]
call dword [ebx + 0x34]
and dword [ebp - 0x24], 0
mov ebx, vtable.CBitmap.0
add esp, 0x14
mov dword [ebp - 0x28], ebx
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.01d2a30b
mov dword [ebp - 0x14], eax
call sub.mfc100.dll_Ordinal_1929
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0xc], ecx
mov eax, dword [ebp - 0x18]
movzx eax, word [eax*4 + 0x1d89cd4]
push eax
push 2
push eax
call sub.mfc100.dll_Ordinal_1900
push eax
call dword [sym.imp.USER32.dll_LoadBitmapW]
push eax
lea ecx, [ebp - 0x28]
call sub.mfc100.dll_Ordinal_2184
test eax, eax
je 0x1d2c001
mov eax, dword [esi + 0x4c7c]
mov ecx, dword [eax]
lea edx, [ebp - 0x28]
push edx
push eax
call dword [ecx + 0x24]
pop ecx
pop ecx
lea ecx, [ebp - 0x28]
call sub.mfc100.dll_Ordinal_3439
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x14], eax
call sub.mfc100.dll_Ordinal_1929
push dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x14]
mov dword [eax + 0xc], ecx
lea eax, [edi + 0x1d691f4]
push eax
lea eax, [edi + 0x1d69274]
push eax
mov eax, dword [ebp + 0xc]
movzx eax, word [eax + 0xe]
push eax
lea eax, [ebp + 0x10]
push 0x1d68b3c
push eax
call dword [sym.imp.mfc100.dll_Ordinal_4283]
mov esi, dword [esi + 0x4c7c]
mov edi, dword [esi]
add esp, 0x18
push 0
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_5207]
push eax
push 0xff00ff
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_1448]
push eax
push esi
call dword [edi + 0x34]
add esp, 0x14
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
mov dword [ebp - 0x28], ebx
call fcn.01d027d8
lea ecx, [ebp + 0x10]
call dword [sym.imp.mfc100.dll_Ordinal_901]
mov al, 1
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc