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

Disassembly:
sub esp, 0xb8
push ebx
push ebp
push esi
push edi
mov edi, edx
mov dword [esp + 0x18], 0
xor eax, eax
mov dword [esp + 0x2c], edi
mov esi, ecx
mov dword [esp + 0x1c], eax
xor ebx, ebx
mov dword [esp + 0xc4], esi
cmp dword [edi + 0xc], 0x11
jae 0x102cdc9c
push str.Segment_too_short
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
mov ebp, dword [esp + 0xcc]
lea ecx, [esp + 0xac]
mov edx, ebp
call fcn.102bb130
movzx ecx, byte [ebp + 0x11]
movzx eax, byte [ebp + 0x12]
shl cx, 8
or cx, ax
mov dword [esp + 0x10], 0x13
movzx eax, cx
push eax
push str.text_region_header_flags_0x_04x
push dword [edi]
mov dword [esp + 0x20], eax
push 0
push esi
call fcn.10283d90
add esp, 0x14
lea eax, [esp + 0x30]
push 0x78
push 0
push eax
call sub.MSVCR120.dll_memset
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, edx
mov ecx, edx
and eax, 1
shr ecx, 2
mov dword [esp + 0x24], eax
and ecx, 3
mov dword [esp + 0x30], eax
mov eax, edx
and eax, 2
mov dword [esp + 0x50], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], eax
mov eax, 1
shl eax, cl
mov dword [esp + 0x54], eax
mov eax, edx
shr eax, 4
and eax, 3
mov dword [esp + 0x44], eax
mov eax, edx
and eax, 0x40
mov dword [esp + 0x40], eax
mov eax, edx
shr eax, 7
and eax, 3
mov dword [esp + 0x3c], eax
mov eax, edx
and eax, 0x200
mov dword [esp + 0x38], eax
mov eax, edx
shr eax, 0xa
and eax, 0x1f
mov dword [esp + 0x48], eax
cmp eax, 0xf
jle 0x102cdd6c
sub eax, 0x20
mov dword [esp + 0x48], eax
and edx, 0x8000
mov dword [esp + 0x14], edx
mov dword [esp + 0xa0], edx
test eax, eax
je 0x102cdd98
push eax
push str.text_region_has_SBDSOFFSET__d
push dword [edi]
push 0
push esi
call fcn.10283d90
mov edx, dword [esp + 0x28]
add esp, 0x14
cmp dword [esp + 0x24], ebx
je 0x102cdde1
movzx ecx, byte [ebp + 0x13]
movzx eax, byte [ebp + 0x14]
shl cx, 8
or cx, ax
mov eax, 0x15
movzx edx, cx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], eax
test edx, 0x8000
je 0x102cde2c
push str.reserved_bit_15_of_text_region_huffman_flags_is_not_zero
push dword [edi]
push 2
push esi
call fcn.10283d90
mov edx, dword [esp + 0x2c]
add esp, 0x10
mov eax, dword [esp + 0x10]
jmp 0x102cde2c
cmp dword [esp + 0x28], ebx
je 0x102cde25
test edx, edx
jne 0x102cde25
movzx eax, byte [ebp + 0x13]
mov byte [esp + 0xa4], al
movzx eax, byte [ebp + 0x14]
mov byte [esp + 0xa5], al
movzx eax, byte [ebp + 0x15]
mov byte [esp + 0xa6], al
movzx eax, byte [ebp + 0x16]
mov dword [esp + 0x10], 0x17
mov byte [esp + 0xa7], al
mov eax, dword [esp + 0x10]
jmp 0x102cde2a
mov eax, 0x13
xor edx, edx
movzx ecx, byte [eax + ebp]
movzx eax, byte [eax + ebp + 1]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 8
movzx eax, byte [eax + ebp + 2]
or ecx, eax
mov eax, dword [esp + 0x10]
add dword [esp + 0x10], 4
shl ecx, 8
movzx eax, byte [eax + ebp + 3]
or ecx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x4c], ecx
cmp dword [esp + 0x24], ebx
je 0x102ce257
movzx ebp, dx
mov eax, ebp
and eax, 3
sub eax, 0
je 0x102cdecd
dec eax
je 0x102cdec6
sub eax, 2
je 0x102cde8c
push str.text_region_specified_invalid_FS_huffman_table
jmp 0x102ce70f
push 0
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102cdeb6
push eax
push str.Custom_FS_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
mov ebx, 1
jmp 0x102cded9
mov edx, 0x1041b59c
jmp 0x102cded2
mov edx, 0x103bba64
mov ecx, esi
call fcn.102c6780
mov dword [esp + 0x58], eax
test eax, eax
jne 0x102cdeeb
push str.failed_to_allocate_text_region_specified_FS_huffman_table
jmp 0x102ce70f
mov eax, ebp
shr eax, 2
and eax, 3
cmp eax, 3
ja case.default.0x102cdef8
jmp dword [eax*4 + 0x102ce840]
mov edx, 0x10401a9c
mov ecx, esi
call fcn.102c6780
jmp 0x102cdf5c
mov edx, 0x10401b1c
mov ecx, esi
call fcn.102c6780
jmp 0x102cdf5c
mov edx, 0x103fa48c
mov ecx, esi
call fcn.102c6780
jmp 0x102cdf5c
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102cdf52
push ebx
push str.Custom_DS_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
inc ebx
mov dword [esp + 0x5c], eax
cmp dword [esp + 0x5c], 0
jne 0x102cdf71
push str.failed_to_allocate_text_region_specified_DS_huffman_table
jmp 0x102ce70f
mov eax, ebp
shr eax, 4
and eax, 3
cmp eax, 3
ja case.default.0x102cdf7e
jmp dword [eax*4 + 0x102ce850]
mov edx, 0x1047178c
mov ecx, esi
call fcn.102c6780
jmp 0x102cdfe2
mov edx, 0x103f2034
mov ecx, esi
call fcn.102c6780
jmp 0x102cdfe2
mov edx, 0x103a6bcc
mov ecx, esi
call fcn.102c6780
jmp 0x102cdfe2
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102cdfd8
push ebx
push str.Custom_DT_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
inc ebx
mov dword [esp + 0x60], eax
cmp dword [esp + 0x60], 0
jne 0x102cdff7
push str.failed_to_allocate_text_region_specified_DT_huffman_table
jmp 0x102ce70f
mov eax, ebp
shr eax, 6
and eax, 3
sub eax, 0
je 0x102ce052
dec eax
je 0x102ce04b
sub eax, 2
je 0x102ce016
push str.text_region_specified_invalid_RDW_huffman_table
jmp 0x102ce70f
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102ce03f
push ebx
push str.Custom_RDW_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
inc ebx
jmp 0x102ce05e
mov edx, 0x10420f6c
jmp 0x102ce057
mov edx, 0x103a6724
mov ecx, esi
call fcn.102c6780
mov dword [esp + 0x64], eax
test eax, eax
jne 0x102ce070
push str.failed_to_allocate_text_region_specified_RDW_huffman_table
jmp 0x102ce70f
mov eax, ebp
shr eax, 8
and eax, 3
sub eax, 0
je 0x102ce0cb
dec eax
je 0x102ce0c4
sub eax, 2
je 0x102ce08f
push str.text_region_specified_invalid_RDH_huffman_table
jmp 0x102ce70f
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102ce0b8
push ebx
push str.Custom_RDH_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
inc ebx
jmp 0x102ce0d7
mov edx, 0x10420f6c
jmp 0x102ce0d0
mov edx, 0x103a6724
mov ecx, esi
call fcn.102c6780
mov dword [esp + 0x68], eax
test eax, eax
jne 0x102ce0e9
push str.failed_to_allocate_text_region_specified_RDH_huffman_table
jmp 0x102ce70f
mov eax, ebp
shr eax, 0xa
and eax, 3
sub eax, 0
je 0x102ce144
dec eax
je 0x102ce13d
sub eax, 2
je 0x102ce108
push str.text_region_specified_invalid_RDX_huffman_table
jmp 0x102ce70f
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102ce131
push ebx
push str.Custom_RDX_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
inc ebx
jmp 0x102ce150
mov edx, 0x10420f6c
jmp 0x102ce149
mov edx, 0x103a6724
mov ecx, esi
call fcn.102c6780
mov dword [esp + 0x6c], eax
test eax, eax
jne 0x102ce162
push str.failed_to_allocate_text_region_specified_RDX_huffman_table
jmp 0x102ce70f
mov eax, ebp
shr eax, 0xc
and eax, 3
sub eax, 0
je 0x102ce1bd
dec eax
je 0x102ce1b6
sub eax, 2
je 0x102ce181
push str.text_region_specified_invalid_RDY_huffman_table
jmp 0x102ce70f
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102ce1aa
push ebx
push str.Custom_RDY_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
mov ecx, esi
call fcn.102c6780
inc ebx
jmp 0x102ce1c9
mov edx, 0x10420f6c
jmp 0x102ce1c2
mov edx, 0x103a6724
mov ecx, esi
call fcn.102c6780
mov dword [esp + 0x70], eax
test eax, eax
jne 0x102ce1db
push str.failed_to_allocate_text_region_specified_RDY_huffman_table
jmp 0x102ce70f
shr ebp, 0xe
and ebp, 1
sub ebp, 0
je 0x102ce216
dec ebp
jne 0x102ce226
push ebx
mov edx, edi
mov ecx, esi
call fcn.102c6f50
add esp, 4
test eax, eax
jne 0x102ce212
push ebx
push str.Custom_RSIZE_huffman_table_not_found___d_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x14
jmp 0x102ce71c
mov edx, eax
jmp 0x102ce21b
mov edx, 0x103a6fec
mov ecx, esi
call fcn.102c6780
mov dword [esp + 0x74], eax
cmp dword [esp + 0x74], 0
jne 0x102ce237
push str.failed_to_allocate_text_region_specified_RSIZE_huffman_table
jmp 0x102ce70f
test dword [esp + 0x1c], 0x8000
je 0x102ce253
push str.text_region_huffman_flags_bit_15_is_set__contrary_to_spec
push dword [edi]
push 2
push esi
call fcn.10283d90
add esp, 0x10
mov ecx, dword [esp + 0x20]
push ecx
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push dword [esp + 0xbc]
push str.text_region:__d_x__d_____d__d___d_symbols
push dword [edi]
push 1
push esi
call fcn.10283d90
add esp, 0x24
mov edx, edi
mov ecx, esi
call fcn.102c7130
mov ebp, eax
test ebp, ebp
je 0x102ce70a
mov edx, edi
mov ecx, esi
call fcn.102c7200
mov dword [esp + 0x18], eax
test eax, eax
jne 0x102ce2b4
push str.unable_to_retrive_symbol_dictionaries__previous_parsing_error_
jmp 0x102ce70f
cmp dword [eax], 0
jne 0x102ce2c7
push str.unable_to_find_first_referenced_symbol_dictionary_
push dword [edi]
push 2
jmp 0x102ce713
mov ebx, 1
cmp ebp, ebx
jle 0x102ce2f3
cmp dword [eax + ebx*4], 0
jne 0x102ce2ee
push str.unable_to_find_all_referenced_symbol_dictionaries_
push dword [edi]
push 2
push esi
call fcn.10283d90
mov eax, dword [esp + 0x28]
add esp, 0x10
mov ebp, ebx
inc ebx
cmp ebx, ebp
jl 0x102ce2d0
mov eax, dword [esp + 0x14]
mov ebx, 0x2000
test eax, eax
mov ecx, 0x400
mov eax, dword [esi]
cmovne ebx, ecx
cmp ebx, 0xffffff00
jae 0x102ce703
push ebx
push eax
mov eax, dword [eax]
call eax
add esp, 8
mov dword [esp + 0x28], eax
test eax, eax
je 0x102ce703
push ebx
push 0
push eax
call sub.MSVCR120.dll_memset
mov edx, dword [esp + 0xb8]
add esp, 0xc
mov ecx, esi
push dword [esp + 0xb0]
call fcn.102ba020
mov ebx, eax
add esp, 4
mov dword [esp + 0x14], ebx
test ebx, ebx
jne 0x102ce36d
push str.couldnt_allocate_text_region_image
push dword [edi]
push 3
push esi
call fcn.10283d90
mov ebx, eax
jmp 0x102ce6cb
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xcc]
mov eax, dword [edi + 0xc]
sub eax, ecx
push eax
lea edx, [ecx + edx]
mov ecx, esi
call fcn.102844c0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x102ce3a9
push str.couldnt_allocate_ws_in_text_region_image
push dword [edi]
push 3
push esi
call fcn.10283d90
mov ebx, eax
jmp 0x102ce6cb
mov edx, eax
mov ecx, esi
call fcn.102de240
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x102ce3d0
push str.couldnt_allocate_as_in_text_region_image
push dword [edi]
push 3
push esi
call fcn.10283d90
mov ebx, eax
jmp 0x102ce6cb
cmp dword [esp + 0x24], 0
jne 0x102ce568
xor edx, edx
xor ecx, ecx
mov dword [esp + 0x20], edx
cmp ebp, 2
jl 0x102ce416
mov edi, dword [esp + 0x18]
lea esi, [ebp - 1]
xor ebx, ebx
mov eax, dword [edi + ecx*4]
add edx, dword [eax]
mov eax, dword [edi + ecx*4 + 4]
add ecx, 2
add ebx, dword [eax]
cmp ecx, esi
jl 0x102ce3f1
mov esi, dword [esp + 0xc4]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x14]
cmp ecx, ebp
jge 0x102ce425
mov eax, dword [esp + 0x18]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax]
jmp 0x102ce427
xor ecx, ecx
mov eax, dword [esp + 0x20]
add eax, edx
add ecx, eax
mov dword [esp + 0x2c], ecx
mov ecx, esi
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x78], eax
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x7c], eax
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x80], eax
call fcn.102de720
cmp dword [esp + 0x78], 0
mov dword [esp + 0x84], eax
je 0x102ce54b
cmp dword [esp + 0x7c], 0
je 0x102ce54b
cmp dword [esp + 0x80], 0
je 0x102ce54b
test eax, eax
je 0x102ce54b
mov ecx, dword [esp + 0x2c]
xor edx, edx
cmp ecx, 1
jle 0x102ce4a8
mov eax, 1
rol eax, 1
inc edx
cmp eax, ecx
jl 0x102ce4a1
mov ecx, esi
call fcn.102de520
mov ecx, esi
mov dword [esp + 0x88], eax
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x8c], eax
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x90], eax
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x94], eax
call fcn.102de720
mov ecx, esi
mov dword [esp + 0x98], eax
call fcn.102de720
cmp dword [esp + 0x88], 0
mov dword [esp + 0x9c], eax
je 0x102ce532
cmp dword [esp + 0x8c], 0
je 0x102ce532
cmp dword [esp + 0x90], 0
je 0x102ce532
cmp dword [esp + 0x94], 0
je 0x102ce532
cmp dword [esp + 0x98], 0
je 0x102ce532
test eax, eax
jne 0x102ce564
push str.couldnt_allocate_text_region_image_data
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x10
mov ebx, eax
jmp 0x102ce61b
push str.couldnt_allocate_text_region_image_data
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x10
mov ebx, eax
jmp 0x102ce677
mov eax, dword [esp + 0x1c]
push dword [esp + 0x10]
mov edx, edi
mov ecx, esi
push eax
push dword [esp + 0x30]
lea eax, [esp + 0x3c]
sub esp, 8
push ebx
push ebp
push dword [esp + 0x34]
push eax
call fcn.102ccf40
mov ebx, eax
add esp, 0x24
test ebx, ebx
jns 0x102ce5a5
push str.failed_to_decode_text_region_image_data
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x10
jmp 0x102ce60b
mov al, byte [edi + 4]
and al, 0x3f
cmp al, 4
jne 0x102ce5ba
mov eax, dword [esp + 0x14]
inc dword [eax + 0x10]
mov dword [edi + 0x18], eax
jmp 0x102ce60b
mov ebp, dword [esp + 0xb8]
push ebp
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push dword [esp + 0xb8]
push str.composing__dx_d_decoded_text_region_onto_page_at___d___d_
push dword [edi]
push 0
push esi
call fcn.10283d90
push dword [esp + 0xdc]
imul edx, dword [esi + 0x40], 0x2c
mov ecx, esi
mov eax, dword [esp + 0x38]
push ebp
push dword [esp + 0xdc]
add edx, dword [esi + 0x48]
push eax
call fcn.10283b60
add esp, 0x30
mov eax, dword [esp + 0x30]
mov dword [esp + 0x24], eax
test eax, eax
jne 0x102ce6b3
mov edx, dword [esp + 0x88]
mov ecx, esi
call fcn.102de6f0
mov eax, dword [esi]
push dword [esp + 0x8c]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0x98]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0xa4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0xb0]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0xbc]
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x28
mov eax, dword [esi]
push dword [esp + 0x78]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0x84]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0x90]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0x9c]
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x20
mov eax, dword [esi]
push dword [esp + 0x1c]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push dword [esp + 0x18]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
add esp, 0x10
push dword [esp + 0x28]
push eax
mov eax, dword [eax + 4]
call eax
mov ebp, dword [esp + 0x1c]
add esp, 8
test ebp, ebp
je 0x102ce71e
dec dword [ebp + 0x10]
jne 0x102ce71e
mov eax, dword [esi]
push dword [ebp + 0xc]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push ebp
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
jmp 0x102ce71e
push str.could_not_allocate_GR_stats
jmp 0x102ce70f
push str.text_region_refers_to_no_symbol_dictionaries_
push dword [edi]
push 3
push esi
call fcn.10283d90
add esp, 0x10
mov ebx, eax
cmp dword [esp + 0x24], 0
je 0x102ce821
mov edi, dword [esp + 0x58]
test edi, edi
je 0x102ce748
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x102ce767
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x60]
test edi, edi
je 0x102ce786
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x6c]
test edi, edi
je 0x102ce7a5
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x70]
test edi, edi
je 0x102ce7c4
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x64]
test edi, edi
je 0x102ce7e3
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x68]
test edi, edi
je 0x102ce802
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov edi, dword [esp + 0x74]
test edi, edi
je 0x102ce821
mov eax, dword [esi]
push dword [edi + 4]
push eax
mov eax, dword [eax + 4]
call eax
mov eax, dword [esi]
push edi
push eax
mov eax, dword [eax + 4]
call eax
add esp, 0x10
mov eax, dword [esi]
push dword [esp + 0x18]
push eax
mov eax, dword [eax + 4]
call eax
add esp, 8
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret